diff --git a/README.md b/README.md
index 6be1f270a..bfe909662 100644
--- a/README.md
+++ b/README.md
@@ -1,8 +1,106 @@
-# treasure-app
+# Arxiv Cloud ☁📄
-> Remember, Makefile is always your friend
+## 概要
+
+- 日頃の論文サーベイのをより良く、更なる研究を。
+- バックエンド Go, フロントエンド React, サーバ MySQL, ユーザ認証 Firebase
+- URL: none
+- github: here
+
+
+

+

+
+
+## コア体験
+
+- Arxiv にある論文を検索、自動で和訳した Abstract や抽出されたキーフレーズによるタグを表示し、より高速な論文サーベイ・タグの可視化ができる
+
+- 動機
+ - 論文サーベイは時間がかかるが、より高速に様々な論文を読みたい。
+ - 日本語で読むほうが早い / 文章のキーワードがあるとより早く判別しやすい
+ - 単純なテキスト表示だけでなく、論文の動向の可視化を行いたい
+
+## コア機能
+
+論文検索・和訳表示・タグの可視化(word cloud)
+
+-
+
+1. 論文検索
+
+- [Arxiv API](https://arxiv.org/help/api)
+- Get でクエリに検索ワード、検索個数を載せてリクエストを送ると html 形式で返してくる
+
+2. 和訳表示
+
+- [Google Cloud Translation API](https://cloud.google.com/translate/pricing?hl=ja)
+- いつもの。V2 だと有料なので、V3beta1 を経由すべき。
+
+3. タグの可視化
+
+- [react-tag-cloud](https://www.npmjs.com/package/react-tag-cloud])のパッケージ
+- word cloud を react 経由で使える。preact はダメなので注意を。
+
+## コア機能の設計
+
+### ユーザに関して
+
+| Name | About | Type |
+| :----------- | :----------------------------- | :----- |
+| id | ユーザー ID を保持 | int |
+| firebase_uid | firebase のユーザー ID を保持 | string |
+| email | ユーザーのメールアドレスを保持 | string |
+| display_name | ユーザー表示名を保持 | string |
+| photo_url | ユーザー表示画像 URL を保持 | string |
+| ctime | user を作成した時間 | date |
+| utime | user を更新した時間 | date |
+
+user
+
+### 論文に関して
+
+#### ツイート内容
+
+| Name | About | Type |
+| :---- | :------------------------- | :----- |
+| id | 論文の id を保持 | int |
+| title | 論文の タイトル(EN) を保持 | string |
+| body | 論文の Abstract(JP) を保持 | text |
+| ctime | article を作成した時間 | date |
+| utime | article を更新した時間 | date |
+
+article - has many tag
+
+#### タグ内容
+
+| Name | About | Type |
+| :--------- | :--------------------------- | :----- |
+| id | タグの id を保持 | int |
+| article_id | 紐づいている論文の id を保持 | int |
+| tag | タグの内容(jp) を保持 | string |
+| ctime | tag を作成した時間 | date |
+| utime | tag を更新した時間 | date |
+
+tag - belong to article
+
+## URI 設計
+
+| Methods | URI | About |
+| :------ | :---------- | :-------------------------------------------------- |
+| GET | /paper | ArxivAPI に対し query に keyword を入れて検索 |
+| GET | /articles | 全ての論文を出す |
+| GET | /tags | 全ての論文に紐づいたタグをだす(word cloud に投げる) |
+| POST | /delete/:id | 特定の論文を削除、見た目状の変化なし |
+
+## View 設計
+
+| ページ | 内容 |
+| :------------------ | :------------------- |
+| index.html / App.js | React 経由で全て表示 |
+
+## local 環境
-### local環境
```
❯ docker --version
Docker version 18.09.2, build 6247962
@@ -18,4 +116,5 @@ v10.15.3
```
### Links
- - https://12factor.net
+
+- https://12factor.net
diff --git a/backend/README.md b/backend/README.md
index 8fd027a04..9bbd12924 100644
--- a/backend/README.md
+++ b/backend/README.md
@@ -1,12 +1,20 @@
+# Slide
+
+https://go-talks.appspot.com/github.com/voyagegroup/talks/2019/treasure-go-day2/intro.slide#1
+
# Getting Started
## 1. Database 立ち上げ
`../database` に構成などが定義されているので、読んでみてください。
+以下のターゲットを叩くと、databaseの準備をします。
+
```console
❯ make -f integration.mk database-init
-make -C ../database init
+```
+
+```console
which goose || GO111MODULE=off go get -u github.com/pressly/goose/cmd/goose
/Users/j-chikamori/go/bin/goose
docker-compose up -d
@@ -72,9 +80,14 @@ PORT=1991
使っているAPI: [Exchange custom token for an ID and refresh token](https://firebase.google.com/docs/reference/rest/auth/#section-refresh-token)
それぞれのキーについては、上記リンクを見れば大体分かる。
+トークンの作成
+
```console
❯ make -f integration.mk create-token UID=demo
go run ./cmd/customtoken/main.go demo .idToken
+```
+
+```console
{
"kind": "identitytoolkit#VerifyCustomTokenResponse",
"idToken": "idtoken",
@@ -88,17 +101,27 @@ go run ./cmd/customtoken/main.go demo .idToken
## 5. Hello World
+*サーバー立ち上げ*
+
```console
❯ make run
go run cmd/api/main.go
+```
+
+```console
2019/08/08 11:32:47 server.go:51: Listening on port 1991
```
サーバーを立ち上げた状態で、別シェルから以下を叩く。
+*認証ありエンドポイントへのリクエスト*
+
```console
❯ make -f integration.mk req-private
curl -v -H "Authorization: Bearer Hoge" localhost:1991/private
+```
+
+```console
* Trying ::1...
* TCP_NODELAY set
* Connected to localhost (::1) port 1991 (#0)
@@ -116,10 +139,16 @@ curl -v -H "Authorization: Bearer Hoge" localhost:1991/private
<
* Connection #0 to host localhost left intact
{"message":"Hello from private endpoint! Your firebase uuid is demo"}
+```
+*認証なしエンドポイントへのリクエスト*
+```console
❯ make -f integration.mk req-public
curl -v localhost:1991/public
+```
+
+```console
* Trying ::1...
* TCP_NODELAY set
* Connected to localhost (::1) port 1991 (#0)
@@ -149,16 +178,29 @@ curl -v localhost:1991/public
コードを書き換える度に `go run` し直すのは面倒くさいので、書き換えるとrebuildしてくれるコマンドを用意しているので活用してください。
+realizeをgo getする
+
```console
❯ make dev-deps
GO111MODULE=off go get -u -v \
github.com/oxequa/realize
+```
+
+```
github.com/oxequa/realize (download)
github.com/oxequa/interact (download)
github.com/fatih/color (download)
github.com/fsnotify/fsnotify (download)
+```
+
+realizeを使って実行する
+
+```console
❯ make refresh-run
realize start
+```
+
+``` console
[11:36:48][BACKEND] : Watching 21 file/s 14 folder/s
[11:36:48][BACKEND] : Install started
[11:36:51][BACKEND] : Install completed in 3.653 s
diff --git a/backend/controller/article.go b/backend/controller/article.go
index 524ab3941..b8d942dd0 100644
--- a/backend/controller/article.go
+++ b/backend/controller/article.go
@@ -1,14 +1,23 @@
package controller
import (
+ "context"
"database/sql"
"encoding/json"
+ "fmt"
+ "io/ioutil"
"net/http"
+ "net/url"
+ "os"
"strconv"
+ "strings"
+ "cloud.google.com/go/translate"
"github.com/gorilla/mux"
"github.com/jmoiron/sqlx"
"github.com/pkg/errors"
+ "golang.org/x/net/html"
+ "golang.org/x/text/language"
"github.com/voyagegroup/treasure-app/httputil"
"github.com/voyagegroup/treasure-app/model"
@@ -16,19 +25,311 @@ import (
"github.com/voyagegroup/treasure-app/service"
)
+type Paper struct {
+ Title string
+ Abstract string
+}
+
+type Result struct {
+ Keyphrase string `xml:"Keyphrase"`
+ Score string `xml:"Score"`
+}
+
type Article struct {
dbx *sqlx.DB
}
+type ArticleComment struct {
+ dbx *sqlx.DB
+}
+
+type ArticleTag struct {
+ dbx *sqlx.DB
+}
+
func NewArticle(dbx *sqlx.DB) *Article {
return &Article{dbx: dbx}
}
+func NewArticleComment(dbx *sqlx.DB) *ArticleComment {
+ return &ArticleComment{dbx: dbx}
+}
+
+func NewArticleTag(dbx *sqlx.DB) *ArticleTag {
+ return &ArticleTag{dbx: dbx}
+}
+
func (a *Article) Index(w http.ResponseWriter, r *http.Request) (int, interface{}, error) {
articles, err := repository.AllArticle(a.dbx)
if err != nil {
return http.StatusInternalServerError, nil, err
}
+
+ tags, err := repository.AllTag(a.dbx)
+
+ if err != nil {
+ return http.StatusInternalServerError, nil, err
+ }
+
+ var temp int64 = -1
+ var count int = 0
+ var concat string
+
+ fmt.Println(len(tags))
+
+ for i := 0; i < len(tags)-3; i++ {
+ if tags[i].ArticleID != temp {
+ concat = tags[i].Tag + "," + tags[i+1].Tag + "," + tags[i+2].Tag
+ temp = tags[i].ArticleID
+ count++
+ fmt.Println(tags[i].ArticleID, concat)
+ // articles.Tag = &concat
+ }
+
+ }
+
+ return http.StatusOK, articles, nil
+}
+
+func (a *Article) TagIndex(w http.ResponseWriter, r *http.Request) (int, interface{}, error) {
+ tags, err := repository.AllTag(a.dbx)
+
+ if err != nil {
+ return http.StatusInternalServerError, nil, err
+ }
+
+ m := map[string]int{}
+ for i := 0; i < len(tags); i++ {
+ m[tags[i].Tag] = m[tags[i].Tag] + 1
+ }
+
+ // for key, count := range m {
+ // fmt.Print(key, count)
+ // fmt.Print(" ")
+ // }
+ // return http.StatusOK, tags, nil
+ return http.StatusOK, m, nil
+}
+
+func searchArxiv(keyword string, limit int) (map[int][]string, error) {
+
+ resp, err := http.Get("http://export.arxiv.org/api/query?search_query=all:" + keyword + "&start=0&max_results=" + strconv.Itoa(limit))
+
+ if err != nil {
+ return nil, err
+ }
+ defer resp.Body.Close()
+
+ doc, err := html.Parse(resp.Body)
+ if err != nil {
+ return nil, err
+ }
+
+ var count int = 0
+ dictionary := make(map[int][]string)
+
+ var paper Paper
+ var f func(*html.Node)
+
+ f = func(n *html.Node) {
+
+ if n.Type == html.ElementNode && n.Data == "title" {
+ paper.Title = n.FirstChild.Data
+ }
+ if n.Type == html.ElementNode && n.Data == "summary" {
+ paper.Abstract = n.FirstChild.Data
+ }
+ if n.Type == html.ElementNode && n.Data == "entry" {
+ dictionary[count] = []string{paper.Title, paper.Abstract}
+ count++
+ }
+ for c := n.FirstChild; c != nil; c = c.NextSibling {
+ f(c)
+ }
+ }
+ f(doc)
+ return dictionary, nil
+}
+
+func translateText(targetLanguage, text string) (string, error) {
+ ctx := context.Background()
+
+ lang, err := language.Parse(targetLanguage)
+ if err != nil {
+ return "", err
+ }
+
+ client, err := translate.NewClient(ctx)
+ if err != nil {
+ return "", err
+ }
+ defer client.Close()
+
+ resp, err := client.Translate(ctx, []string{text}, lang, nil)
+ if err != nil {
+ return "", err
+ }
+ return resp[0].Text, nil
+}
+
+func extractKeyword(text string) ([]string, error) {
+
+ baseUrl, err := url.Parse("https://jlp.yahooapis.jp/KeyphraseService/V1/extract?")
+ if err != nil {
+ fmt.Println(err)
+ return nil, err
+ }
+
+ params := url.Values{}
+ params.Add("appid", os.Getenv("YAHOO_KEYWORD_API"))
+ // params.Add("sentence", url.QueryEscape(text))
+ params.Add("sentence", text)
+ params.Add("output", "json")
+
+ baseUrl.RawQuery = params.Encode()
+ fmt.Println(baseUrl.String())
+ resp, err := http.Get(baseUrl.String())
+ if err != nil {
+ return nil, err
+ }
+ defer resp.Body.Close()
+
+ doc, err := ioutil.ReadAll(resp.Body)
+ if err != nil {
+ return nil, err
+ }
+
+ // やっっっっっばい
+ docStrs := string(doc)[1 : len(string(doc))-1]
+ docTrim := strings.Replace(docStrs, "\"", "`", -1)
+ docUni8, _ := strconv.Unquote("\"" + docTrim + "\"")
+ docReplace := strings.Replace(docUni8, "`", "", -1)
+ docArray := strings.Split(docReplace, ",")
+
+ return docArray, nil
+}
+
+func (a *Article) TagCreate(w http.ResponseWriter, r *http.Request) (int, interface{}, error) {
+
+ articles, err := repository.AllArticle(a.dbx)
+ if err != nil {
+ return http.StatusInternalServerError, nil, err
+ }
+
+ keywords, err := extractKeyword(articles[2].Body)
+ if err != nil {
+ return http.StatusInternalServerError, nil, err
+ }
+
+ for j := 1; j < len(keywords); j++ {
+ splitKeys := strings.Split(keywords[j], ":")
+ newArticleTag := &model.ArticleTag{Tag: splitKeys[0]} //, Body: splitKeys[1]}
+
+ articleTagService := service.NewArticleTagService(a.dbx)
+ id, err := articleTagService.CreateArticleTag(newArticleTag)
+
+ if err != nil {
+ return http.StatusInternalServerError, nil, err
+ }
+ newArticleTag.ID = id
+ }
+
+ return http.StatusOK, articles, nil
+}
+
+func (a *Article) CreatePaper(w http.ResponseWriter, r *http.Request) (int, interface{}, error) {
+
+ vars := r.URL.Query()
+ keyword := vars["keyword"][0]
+
+ dictionary, err := searchArxiv(keyword, 3)
+
+ if err != nil {
+ return http.StatusBadRequest, nil, err
+ }
+
+ for i := 0; i < len(dictionary); i++ {
+ translated, err := translateText("ja", dictionary[i][1])
+ if err != nil {
+ return http.StatusBadRequest, nil, err
+ }
+ dictionary[i] = []string{dictionary[i][0], dictionary[i][1], translated}
+ }
+
+ if err != nil {
+ return http.StatusBadRequest, nil, err
+ }
+
+ // ここでdictionaryに欠損ないか = DBに正しく入るかの処理をしたい
+ for j := 1; j < len(dictionary); j++ {
+ newArticle := &model.Article{Title: dictionary[j][0], Body: dictionary[j][2]}
+ fmt.Println(j)
+ fmt.Println(dictionary[j][0])
+
+ // 認証無しはやばいので。。。 現状Getのクエリで対処している部分をPostでUserID付与の状態に
+
+ // if err := json.NewDecoder(r.Body).Decode(&newArticle); err != nil {
+ // return http.StatusBadRequest, nil, err
+ // }
+ // user, err := httputil.GetUserFromContext(r.Context())
+ // if err != nil {
+ // fmt.Println(err)
+ // }
+ // newArticle.UserID = &user.ID
+
+ articleService := service.NewArticleService(a.dbx)
+ id, err := articleService.Create(newArticle)
+
+ if err != nil {
+ return http.StatusInternalServerError, nil, err
+ }
+ newArticle.ID = id
+
+ keywords, err := extractKeyword(dictionary[j][2])
+ if err != nil {
+ return http.StatusInternalServerError, nil, err
+ }
+
+ for k := 1; k < len(keywords); k++ {
+ splitKeys := strings.Split(keywords[k], ":")
+ dictionary[j] = append(dictionary[j], splitKeys[0])
+ // fmt.Println(splitKeys[0])
+ // fmt.Println(dictionary[j])
+
+ newArticleTag := &model.ArticleTag{ArticleID: id, Tag: splitKeys[0]} //, Body: splitKeys[1]}
+
+ articleTagService := service.NewArticleTagService(a.dbx)
+ id, err := articleTagService.CreateArticleTag(newArticleTag)
+
+ if err != nil {
+ return http.StatusInternalServerError, nil, err
+ }
+ newArticleTag.ID = id
+ }
+ fmt.Println("ok")
+
+ }
+
+ fmt.Println("ok2")
+
+ return http.StatusOK, dictionary, nil
+}
+
+func (a *Article) SearchIndex(w http.ResponseWriter, r *http.Request) (int, interface{}, error) {
+ vars := mux.Vars(r)
+ tag, ok := vars["tag"]
+ if !ok {
+ return http.StatusBadRequest, nil, &httputil.HTTPError{Message: "invalid path parameter"}
+
+ }
+
+ articles, err := repository.FindArticleByTag(a.dbx, tag)
+ if err != nil && err == sql.ErrNoRows {
+ return http.StatusNotFound, nil, err
+ } else if err != nil {
+ return http.StatusInternalServerError, nil, err
+ }
+
return http.StatusOK, articles, nil
}
@@ -38,13 +339,13 @@ func (a *Article) Show(w http.ResponseWriter, r *http.Request) (int, interface{}
if !ok {
return http.StatusBadRequest, nil, &httputil.HTTPError{Message: "invalid path parameter"}
}
-
+ fmt.Println("show")
aid, err := strconv.ParseInt(id, 10, 64)
if err != nil {
return http.StatusBadRequest, nil, err
}
- article, err := repository.FindArticle(a.dbx, aid)
+ article, err := repository.FindArticleByID(a.dbx, aid)
if err != nil && err == sql.ErrNoRows {
return http.StatusNotFound, nil, err
} else if err != nil {
@@ -56,11 +357,20 @@ func (a *Article) Show(w http.ResponseWriter, r *http.Request) (int, interface{}
func (a *Article) Create(w http.ResponseWriter, r *http.Request) (int, interface{}, error) {
newArticle := &model.Article{}
+ fmt.Println("tes")
+
if err := json.NewDecoder(r.Body).Decode(&newArticle); err != nil {
return http.StatusBadRequest, nil, err
}
+ user, err := httputil.GetUserFromContext(r.Context())
+ if err != nil {
+ fmt.Println(err)
+ }
+ newArticle.UserID = &user.ID
+
articleService := service.NewArticleService(a.dbx)
+ fmt.Println(newArticle)
id, err := articleService.Create(newArticle)
if err != nil {
return http.StatusInternalServerError, nil, err
@@ -76,6 +386,7 @@ func (a *Article) Update(w http.ResponseWriter, r *http.Request) (int, interface
if !ok {
return http.StatusBadRequest, nil, &httputil.HTTPError{Message: "invalid path parameter"}
}
+ fmt.Println("update")
aid, err := strconv.ParseInt(id, 10, 64)
if err != nil {
@@ -104,6 +415,7 @@ func (a *Article) Destroy(w http.ResponseWriter, r *http.Request) (int, interfac
if !ok {
return http.StatusBadRequest, nil, &httputil.HTTPError{Message: "invalid path parameter"}
}
+ fmt.Println("destroy")
aid, err := strconv.ParseInt(id, 10, 64)
if err != nil {
@@ -120,3 +432,54 @@ func (a *Article) Destroy(w http.ResponseWriter, r *http.Request) (int, interfac
return http.StatusNoContent, nil, nil
}
+
+func (a *Article) DestroyAll(w http.ResponseWriter, r *http.Request) (int, interface{}, error) {
+
+ articleService := service.NewArticleService(a.dbx)
+ err := articleService.DestroyAll()
+ if err != nil && errors.Cause(err) == sql.ErrNoRows {
+ return http.StatusNotFound, nil, err
+ } else if err != nil {
+ return http.StatusInternalServerError, nil, err
+ }
+
+ return http.StatusNoContent, nil, nil
+}
+
+func (a *ArticleComment) CreateArticleComment(w http.ResponseWriter, r *http.Request) (int, interface{}, error) {
+ newArticleComment := &model.ArticleComment{}
+ if err := json.NewDecoder(r.Body).Decode(&newArticleComment); err != nil {
+ return http.StatusBadRequest, nil, err
+ }
+
+ user, err := httputil.GetUserFromContext(r.Context())
+ if err != nil {
+ fmt.Println(err)
+ }
+ newArticleComment.UserID = &user.ID
+
+ articleCommentService := service.NewArticleCommentService(a.dbx)
+ id, err := articleCommentService.CreateArticleComment(newArticleComment)
+ if err != nil {
+ return http.StatusInternalServerError, nil, err
+ }
+ newArticleComment.ID = id
+
+ return http.StatusCreated, newArticleComment, nil
+}
+
+func (a *ArticleTag) CreateArticleTag(w http.ResponseWriter, r *http.Request) (int, interface{}, error) {
+ newArticleTag := &model.ArticleTag{}
+ if err := json.NewDecoder(r.Body).Decode(&newArticleTag); err != nil {
+ return http.StatusBadRequest, nil, err
+ }
+
+ articleTagService := service.NewArticleTagService(a.dbx)
+ id, err := articleTagService.CreateArticleTag(newArticleTag)
+ if err != nil {
+ return http.StatusInternalServerError, nil, err
+ }
+ newArticleTag.ID = id
+
+ return http.StatusCreated, newArticleTag, nil
+}
diff --git a/backend/dbutil/tx.go b/backend/dbutil/tx.go
index 99f025778..65947ca3f 100644
--- a/backend/dbutil/tx.go
+++ b/backend/dbutil/tx.go
@@ -11,8 +11,8 @@ import (
// TXHandler is handler for working with transaction.
// This is wrapper function for commit and rollback.
-func TXHandler(dbx *sqlx.DB, f func(*sqlx.Tx) error) error {
- tx, err := dbx.Beginx()
+func TXHandler(db *sqlx.DB, f func(*sqlx.Tx) error) error {
+ tx, err := db.Beginx()
if err != nil {
return errors.Wrap(err, "start transaction failed")
}
diff --git a/backend/go.mod b/backend/go.mod
index eadca7bd1..e6c009752 100644
--- a/backend/go.mod
+++ b/backend/go.mod
@@ -3,8 +3,9 @@ module github.com/voyagegroup/treasure-app
go 1.12
require (
- cloud.google.com/go v0.43.0 // indirect
+ cloud.google.com/go v0.43.0
firebase.google.com/go v3.8.1+incompatible
+ github.com/gin-gonic/gin v1.4.0
github.com/go-sql-driver/mysql v1.4.0
github.com/gorilla/handlers v1.4.2
github.com/gorilla/mux v1.7.3
@@ -13,7 +14,11 @@ require (
github.com/justinas/alice v0.0.0-20171023064455-03f45bd4b7da
github.com/pkg/errors v0.8.1
github.com/rs/cors v1.6.0
+ github.com/wickett/word-cloud-generator v0.0.0-20180821165703-e543811ca0c1
go.uber.org/atomic v1.4.0 // indirect
go.uber.org/multierr v1.1.0 // indirect
go.uber.org/zap v1.10.0
+ golang.org/x/net v0.0.0-20190620200207-3b0461eec859
+ golang.org/x/text v0.3.2
+ google.golang.org/api v0.8.0
)
diff --git a/backend/go.sum b/backend/go.sum
index 849b55e7a..dbb2a7d2c 100644
--- a/backend/go.sum
+++ b/backend/go.sum
@@ -8,6 +8,11 @@ firebase.google.com/go v3.8.1+incompatible/go.mod h1:xlah6XbEyW6tbfSklcfe5FHJIwj
github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo=
github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw=
+github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
+github.com/gin-contrib/sse v0.0.0-20190301062529-5545eab6dad3 h1:t8FVkw33L+wilf2QiWkw0UV77qRpcH/JHPKGpKa2E8g=
+github.com/gin-contrib/sse v0.0.0-20190301062529-5545eab6dad3/go.mod h1:VJ0WA2NBN22VlZ2dKZQPAPnyWw5XTlK1KymzLKsr59s=
+github.com/gin-gonic/gin v1.4.0 h1:3tMoCCfM7ppqsR0ptz/wi1impNpT7/9wQtMZ8lr1mCQ=
+github.com/gin-gonic/gin v1.4.0/go.mod h1:OW2EZn3DO8Ln9oIKOvM++LBO+5UPHJJDH72/q/3rZdM=
github.com/go-sql-driver/mysql v1.4.0 h1:7LxgVwFb2hIQtMm87NdgAVfXjnt4OePseqT1tKx+opk=
github.com/go-sql-driver/mysql v1.4.0/go.mod h1:zAC/RDZ24gD3HViQzih4MyKcchzm+sOG5ZlKdlhCg5w=
github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b h1:VKtxabqXZkF25pY9ekfRL6a582T4P37/31XEstQ5p58=
@@ -42,17 +47,29 @@ github.com/jmoiron/sqlx v1.2.0 h1:41Ip0zITnmWNR/vHV+S4m+VoUivnWY5E4OJfLZjCJMA=
github.com/jmoiron/sqlx v1.2.0/go.mod h1:1FEQNm3xlJgrMD+FBdI9+xvCksHtbpVBBw5dYhBSsks=
github.com/joho/godotenv v1.3.0 h1:Zjp+RcGpHhGlrMbJzXTrZZPrWj+1vfm90La1wgB6Bhc=
github.com/joho/godotenv v1.3.0/go.mod h1:7hK45KPybAkOC6peb+G5yklZfMxEjkZhHbwpqxOKXbg=
+github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU=
github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU=
github.com/justinas/alice v0.0.0-20171023064455-03f45bd4b7da h1:5y58+OCjoHCYB8182mpf/dEsq0vwTKPOo4zGfH0xW9A=
github.com/justinas/alice v0.0.0-20171023064455-03f45bd4b7da/go.mod h1:oLH0CmIaxCGXD67VKGR5AacGXZSMznlmeqM8RzPrcY8=
github.com/lib/pq v1.0.0 h1:X5PMW56eZitiTeO7tKzZxFCSpbFZJtkMMooicw2us9A=
github.com/lib/pq v1.0.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo=
+github.com/mattn/go-isatty v0.0.7 h1:UvyT9uN+3r7yLEYSlJsbQGdsaB/a0DlgWP3pql6iwOc=
+github.com/mattn/go-isatty v0.0.7/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s=
github.com/mattn/go-sqlite3 v1.9.0 h1:pDRiWfl+++eC2FEFRy6jXmQlvp4Yh3z1MJKg4UeYM/4=
github.com/mattn/go-sqlite3 v1.9.0/go.mod h1:FPy6KqzDD04eiIsT53CuJW3U88zkxoIYsOqkbpncsNc=
+github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
+github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0=
github.com/pkg/errors v0.8.1 h1:iURUrRGxPUNPdy5/HRSm+Yj6okJ6UtLINN0Q9M4+h3I=
github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
+github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
github.com/rs/cors v1.6.0 h1:G9tHG9lebljV9mfp9SNPDL36nCDxmo3zTlAf1YgvzmI=
github.com/rs/cors v1.6.0/go.mod h1:gFx+x8UowdsKA9AchylcLynDq+nNFfI8FkUZdN/jGCU=
+github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
+github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
+github.com/ugorji/go v1.1.4 h1:j4s+tAvLfL3bZyefP2SEWmhBzmuIlH/eqNuPdFPgngw=
+github.com/ugorji/go v1.1.4/go.mod h1:uQMGLiO92mf5W77hV/PUCpI3pbzQx3CRekS0kk+RGrc=
+github.com/wickett/word-cloud-generator v0.0.0-20180821165703-e543811ca0c1 h1:Qc8dPlxFtHa0tx/2pXpcOQlHUbepc74YiLuCk6C5lJo=
+github.com/wickett/word-cloud-generator v0.0.0-20180821165703-e543811ca0c1/go.mod h1:XtyfoZ9N8a1S6BGUaRylYO4sq+ICtfKeYj5pZFRIvHA=
go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU=
go.opencensus.io v0.22.0 h1:C9hSCOW830chIVkdja34wa6Ky+IzWllkUinR+BtRZd4=
go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8=
@@ -95,6 +112,7 @@ golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJ
golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
+golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20190502145724-3ef323f4f1fd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
@@ -121,6 +139,8 @@ golang.org/x/tools v0.0.0-20190628153133-6cdbf07be9d0/go.mod h1:/rFqwRUd4F7ZHNgw
google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE=
google.golang.org/api v0.7.0 h1:9sdfJOzWlkqPltHAuzT2Cp+yrBeY1KRVYgms8soxMwM=
google.golang.org/api v0.7.0/go.mod h1:WtwebWUNSVBH/HAw79HIFXZNqEvBhG+Ra+ax0hx3E3M=
+google.golang.org/api v0.8.0 h1:VGGbLNyPF7dvYHhcUGYBBGCRDDK0RRJAI6KCvo0CL+E=
+google.golang.org/api v0.8.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg=
google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM=
google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
@@ -137,6 +157,12 @@ google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZi
google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38=
google.golang.org/grpc v1.21.1 h1:j6XxA85m/6txkUCHvzlV5f+HBNl/1r5cZ2A/3IEFOO8=
google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM=
+gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
+gopkg.in/go-playground/assert.v1 v1.2.1/go.mod h1:9RXL0bg/zibRAgZUYszZSwO/z8Y/a8bDuhia5mkpMnE=
+gopkg.in/go-playground/validator.v8 v8.18.2 h1:lFB4DoMU6B626w8ny76MV7VX6W2VHct2GVOI3xgiMrQ=
+gopkg.in/go-playground/validator.v8 v8.18.2/go.mod h1:RX2a/7Ha8BgOhfk7j780h4/u/RRjR0eouCJSH80/M2Y=
+gopkg.in/yaml.v2 v2.2.2 h1:ZCJp+EgiOT7lHqUV2J862kp8Qj64Jo6az82+3Td9dZw=
+gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
honnef.co/go/tools v0.0.0-20190418001031-e561f6794a2a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
diff --git a/backend/integration.mk b/backend/integration.mk
index 628adc375..b77d58280 100644
--- a/backend/integration.mk
+++ b/backend/integration.mk
@@ -9,6 +9,8 @@ ARTICLE_ID:=1
ARTICLE_TITLE:=title
ARTICLE_BODY:=body
+ARTICLE_COMMENT_BODY:=bodycomment
+
create-token:
go run ./cmd/customtoken/main.go $(UID) $(TOKEN_FILE)
@@ -22,7 +24,7 @@ req-articles-get:
curl -v $(HOST):$(PORT)/articles/$(ARTICLE_ID)
req-articles-post:
- curl -v -XPOST -H "Authorization: Bearer $(shell cat ./$(TOKEN_FILE))" $(HOST):$(PORT)/articles -d '{"title": "$(ARTICLE_TITLE)", "body": "$(ARTICLE_BODY)"}'
+ curl -v -XPOST -H "Authorization: Bearer $(shell cat ./$(TOKEN_FILE))" $(HOST):$(PORT)/articles -d '{"title": "$(ARTICLE_TITLE)", "body": "$(ARTICLE_BODY)", "tag_ids": [1, 2]}'
req-articles-update:
curl -v -XPUT -H "Authorization: Bearer $(shell cat ./$(TOKEN_FILE))" $(HOST):$(PORT)/articles/$(ARTICLE_ID) -d '{"title": "$(ARTICLE_TITLE)", "body": "$(ARTICLE_BODY)"}'
@@ -30,6 +32,13 @@ req-articles-update:
req-articles-delete:
curl -v -XDELETE -H "Authorization: Bearer $(shell cat ./$(TOKEN_FILE))" $(HOST):$(PORT)/articles/$(ARTICLE_ID)
+req-articles-delete-all:
+ curl -v -XDELETE -H "Authorization: Bearer $(shell cat ./$(TOKEN_FILE))" $(HOST):$(PORT)/articles
+
+req-articles-comment-post:
+ curl -v -XPOST -H "Authorization: Bearer $(shell cat ./$(TOKEN_FILE))" $(HOST):$(PORT)/articles/$(ARTICLE_ID)/comments -d '{"body": "$(ARTICLE_COMMENT_BODY)"}'
+
+
req-public:
curl -v $(HOST):$(PORT)/public
diff --git a/backend/middleware/auth.go b/backend/middleware/auth.go
index 709b50094..29797230f 100644
--- a/backend/middleware/auth.go
+++ b/backend/middleware/auth.go
@@ -16,19 +16,19 @@ const (
bearer = "Bearer"
)
-type AuthMiddleware struct {
+type Auth struct {
client *auth.Client
db *sqlx.DB
}
-func NewAuthMiddleware(client *auth.Client, db *sqlx.DB) *AuthMiddleware {
- return &AuthMiddleware{
+func NewAuth(client *auth.Client, db *sqlx.DB) *Auth {
+ return &Auth{
client: client,
db: db,
}
}
-func (auth *AuthMiddleware) Handler(next http.Handler) http.Handler {
+func (auth *Auth) Handler(next http.Handler) http.Handler {
return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
idToken, err := getTokenFromHeader(r)
if err != nil {
diff --git a/backend/model/article.go b/backend/model/article.go
index 864a9659f..ce0a9677e 100644
--- a/backend/model/article.go
+++ b/backend/model/article.go
@@ -1,7 +1,22 @@
package model
+type ArticleTag struct {
+ ID int64 `db:"id" json:"id"`
+ ArticleID int64 `db:"article_id" json:"article_id"`
+ Tag string `db:"tag" json:"tag"`
+}
+
+type ArticleComment struct {
+ ID int64 `db:"id" json:"id"`
+ Body string `db:"body" json:"body"`
+ UserID *int64 `db:"user_id" json:"user_id"`
+ ArticleID int64 `db:"article_id" json:"article_id"`
+}
+
type Article struct {
- ID int64 `db:"id" json:"id"`
- Title string `db:"title" json:"title"`
- Body string `db:"body" json:"body"`
+ ID int64 `db:"id" json:"id"`
+ Title string `db:"title" json:"title"`
+ Body string `db:"body" json:"body"`
+ UserID *int64 `db:"user_id" json:"user_id"`
+ ArticleID int64 `db:"article_id" json:"article_id"`
}
diff --git a/backend/repository/article.go b/backend/repository/article.go
index 6b556db1d..e393baf32 100644
--- a/backend/repository/article.go
+++ b/backend/repository/article.go
@@ -2,44 +2,70 @@ package repository
import (
"database/sql"
+ "fmt"
"github.com/jmoiron/sqlx"
"github.com/voyagegroup/treasure-app/model"
)
func AllArticle(db *sqlx.DB) ([]model.Article, error) {
+ fmt.Println("ok")
a := make([]model.Article, 0)
- if err := db.Select(&a, `SELECT id, title, body FROM article`); err != nil {
+ if err := db.Select(&a, `SELECT id, title, body, user_id FROM article`); err != nil {
return nil, err
}
return a, nil
}
-func FindArticle(db *sqlx.DB, id int64) (*model.Article, error) {
+func AllTag(db *sqlx.DB) ([]model.ArticleTag, error) {
+ a := make([]model.ArticleTag, 0)
+
+ if err := db.Select(&a, `SELECT id, article_id, tag FROM article_tag`); err != nil {
+ return nil, err
+ }
+
+ return a, nil
+}
+
+
+
+func FindArticleByTag(db *sqlx.DB, tag string) ([]model.Article, error) {
+ a := make([]model.Article, 0)
+ if err := db.Select(&a,
+ ` SELECT
+ article.id, title, body, user_id, article.tag
+ FROM
+ article
+ INNER JOIN
+ article_tag
+ ON
+ article.id = article_tag.article_id
+ WHERE
+ article_tag.tag= ? `, tag); err != nil {
+ return nil, err
+ }
+ return a, nil
+}
+
+func FindArticleByID(db *sqlx.DB, id int64) (*model.Article, error) {
a := model.Article{}
- if err := db.Get(&a, `
-SELECT id, title, body FROM article WHERE id = ?
-`, id); err != nil {
+ if err := db.Get(&a, `SELECT id, title, body FROM article WHERE id = ?`, id); err != nil {
return nil, err
}
return &a, nil
}
func CreateArticle(db *sqlx.Tx, a *model.Article) (sql.Result, error) {
- stmt, err := db.Prepare(`
-INSERT INTO article (title, body) VALUES (?, ?)
-`)
+ stmt, err := db.Prepare(`INSERT INTO article (user_id, title, body) VALUES (?, ?, ?)`)
if err != nil {
return nil, err
}
defer stmt.Close()
- return stmt.Exec(a.Title, a.Body)
+ return stmt.Exec(a.UserID, a.Title, a.Body)
}
-func UpdateArticle(db *sqlx.Tx, id int64, a *model.Article) (sql.Result, error) {
- stmt, err := db.Prepare(`
-UPDATE article SET title = ?, body = ? WHERE id = ?
-`)
+func UpdateArticleByID(db *sqlx.Tx, id int64, a *model.Article) (sql.Result, error) {
+ stmt, err := db.Prepare(`UPDATE article SET title = ?, body = ? WHERE id = ?`)
if err != nil {
return nil, err
}
@@ -47,13 +73,54 @@ UPDATE article SET title = ?, body = ? WHERE id = ?
return stmt.Exec(a.Title, a.Body, id)
}
-func DestroyArticle(db *sqlx.Tx, id int64) (sql.Result, error) {
- stmt, err := db.Prepare(`
-DELETE FROM article WHERE id = ?
-`)
+func DeleteArticleByID(db *sqlx.Tx, id int64) (sql.Result, error) {
+ stmt, err := db.Prepare(`DELETE FROM article WHERE id = ?`)
if err != nil {
return nil, err
}
defer stmt.Close()
return stmt.Exec(id)
}
+
+func DeleteAllArticle(db *sqlx.Tx) (sql.Result, error) {
+ fmt.Println("-- ↓↓↓ -- before -- ↓↓↓ --")
+
+ a := make([]model.Article, 0)
+ if err := db.Select(&a, `SELECT id, title, body, user_id FROM article`); err != nil {
+ return nil, err
+ }
+ fmt.Println(a)
+ fmt.Println("-- before -- / -- after --")
+
+ stmt, err := db.Prepare(`DELETE FROM article`)
+ if err != nil {
+ return nil, err
+ }
+
+ b := make([]model.Article, 0)
+ if err := db.Select(&b, `SELECT id, title, body, user_id FROM article`); err != nil {
+ return nil, err
+ }
+ fmt.Println(b)
+ fmt.Println("-- ↑↑↑ -- after -- ↑↑↑ --")
+ defer stmt.Close()
+ return stmt.Exec()
+}
+
+func CreateArticleComment(db *sqlx.Tx, a *model.ArticleComment) (sql.Result, error) {
+ stmt, err := db.Prepare(`INSERT INTO article_comment (user_id, article_id, body) VALUES (?, ?, ?)`)
+ if err != nil {
+ return nil, err
+ }
+ defer stmt.Close()
+ return stmt.Exec(a.UserID, a.ArticleID, a.Body)
+}
+
+func CreateArticleTag(db *sqlx.Tx, a *model.ArticleTag) (sql.Result, error) {
+ stmt, err := db.Prepare(`INSERT INTO article_tag (article_id, tag) VALUES (?, ?)`)
+ if err != nil {
+ return nil, err
+ }
+ defer stmt.Close()
+ return stmt.Exec(a.ArticleID, a.Tag)
+}
diff --git a/backend/sample/private.go b/backend/sample/private.go
index 0be296c5c..94abdfd21 100644
--- a/backend/sample/private.go
+++ b/backend/sample/private.go
@@ -12,12 +12,12 @@ import (
)
type PrivateHandler struct {
- dbx *sqlx.DB
+ db *sqlx.DB
}
-func NewPrivateHandler(dbx *sqlx.DB) *PrivateHandler {
+func NewPrivateHandler(db *sqlx.DB) *PrivateHandler {
return &PrivateHandler{
- dbx: dbx,
+ db: db,
}
}
@@ -28,7 +28,7 @@ func (h *PrivateHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
WriteJSON(nil, w, http.StatusInternalServerError)
return
}
- user, err := repository.GetUser(h.dbx, contextUser.FirebaseUID)
+ user, err := repository.GetUser(h.db, contextUser.FirebaseUID)
if err != nil {
log.Printf("Show user failed: %s", err)
WriteJSON(nil, w, http.StatusInternalServerError)
diff --git a/backend/server.go b/backend/server.go
index 911ba9cde..9b0e2d853 100644
--- a/backend/server.go
+++ b/backend/server.go
@@ -59,11 +59,18 @@ func (s *Server) Run(addr string) {
}
}
+// func (s *Server) Route() *mux.Router {
+// authMiddleware := middleware.NewAuthMiddleware(s.authClient, s.dbx)
+// corsMiddleware := cors.New(cors.Options{
+// AllowedOrigins: []string{"*"},
+// AllowedHeaders: []string{"Authorization"},
+// })
func (s *Server) Route() *mux.Router {
- authMiddleware := middleware.NewAuthMiddleware(s.authClient, s.dbx)
+ authMiddleware := middleware.NewAuth(s.authClient, s.dbx)
corsMiddleware := cors.New(cors.Options{
AllowedOrigins: []string{"*"},
- AllowedHeaders: []string{"Authorization"},
+ AllowedHeaders: []string{"Authorization", "Content-Type"},
+ AllowedMethods: []string{"GET", "POST", "DELETE", "PUT", "Head"},
})
commonChain := alice.New(
@@ -81,11 +88,28 @@ func (s *Server) Route() *mux.Router {
articleController := controller.NewArticle(s.dbx)
r.Methods(http.MethodPost).Path("/articles").Handler(authChain.Then(AppHandler{articleController.Create}))
+
r.Methods(http.MethodPut).Path("/articles/{id}").Handler(authChain.Then(AppHandler{articleController.Update}))
r.Methods(http.MethodDelete).Path("/articles/{id}").Handler(authChain.Then(AppHandler{articleController.Destroy}))
+ r.Methods(http.MethodDelete).Path("/articles").Handler(authChain.Then(AppHandler{articleController.DestroyAll}))
+
r.Methods(http.MethodGet).Path("/articles").Handler(commonChain.Then(AppHandler{articleController.Index}))
+ // ※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※
r.Methods(http.MethodGet).Path("/articles/{id}").Handler(commonChain.Then(AppHandler{articleController.Show}))
+ r.Methods(http.MethodGet).Path("/articles/search/{tag}").Handler(commonChain.Then(AppHandler{articleController.SearchIndex}))
+
+ // r.Methods(http.MethodGet).Path("/tag").Handler(commonChain.Then(AppHandler{articleController.TagCreate}))
+ r.Methods(http.MethodGet).Path("/tags").Handler(commonChain.Then(AppHandler{articleController.TagIndex}))
+
+ r.Methods(http.MethodGet).Path("/paper").Handler(commonChain.Then(AppHandler{articleController.CreatePaper}))
+
+ articleCommentController := controller.NewArticleComment(s.dbx)
+ r.Methods(http.MethodPost).Path("/articles/{article_id}/comments").Handler(authChain.Then(AppHandler{articleCommentController.CreateArticleComment}))
+
+ articleTagController := controller.NewArticleTag(s.dbx)
+ r.Methods(http.MethodPost).Path("/articles/tag/{article_id}").Handler(authChain.Then(AppHandler{articleTagController.CreateArticleTag}))
r.PathPrefix("").Handler(commonChain.Then(http.StripPrefix("/img", http.FileServer(http.Dir("./img")))))
+
return r
}
diff --git a/backend/service/article.go b/backend/service/article.go
index 2a3c58391..196d57dd7 100644
--- a/backend/service/article.go
+++ b/backend/service/article.go
@@ -17,14 +17,30 @@ func NewArticleService(db *sqlx.DB) *Article {
return &Article{db}
}
+type ArticleComment struct {
+ db *sqlx.DB
+}
+
+type ArticleTag struct {
+ db *sqlx.DB
+}
+
+func NewArticleCommentService(db *sqlx.DB) *ArticleComment {
+ return &ArticleComment{db}
+}
+
+func NewArticleTagService(db *sqlx.DB) *ArticleTag {
+ return &ArticleTag{db}
+}
+
func (a *Article) Update(id int64, newArticle *model.Article) error {
- _, err := repository.FindArticle(a.db, id)
+ _, err := repository.FindArticleByID(a.db, id)
if err != nil {
return errors.Wrap(err, "failed find article")
}
if err := dbutil.TXHandler(a.db, func(tx *sqlx.Tx) error {
- _, err := repository.UpdateArticle(tx, id, newArticle)
+ _, err := repository.UpdateArticleByID(tx, id, newArticle)
if err != nil {
return err
}
@@ -39,13 +55,30 @@ func (a *Article) Update(id int64, newArticle *model.Article) error {
}
func (a *Article) Destroy(id int64) error {
- _, err := repository.FindArticle(a.db, id)
+ _, err := repository.FindArticleByID(a.db, id)
if err != nil {
return errors.Wrap(err, "failed find article")
}
if err := dbutil.TXHandler(a.db, func(tx *sqlx.Tx) error {
- _, err := repository.DestroyArticle(tx, id)
+ _, err := repository.DeleteArticleByID(tx, id)
+ if err != nil {
+ return err
+ }
+ if err := tx.Commit(); err != nil {
+ return err
+ }
+ return err
+ }); err != nil {
+ return errors.Wrap(err, "failed article delete transaction")
+ }
+ return nil
+}
+
+func (a *Article) DestroyAll() error {
+
+ if err := dbutil.TXHandler(a.db, func(tx *sqlx.Tx) error {
+ _, err := repository.DeleteAllArticle(tx)
if err != nil {
return err
}
@@ -63,6 +96,51 @@ func (a *Article) Create(newArticle *model.Article) (int64, error) {
var createdId int64
if err := dbutil.TXHandler(a.db, func(tx *sqlx.Tx) error {
result, err := repository.CreateArticle(tx, newArticle)
+ // fmt.Println(newArticle.Title)
+ if err != nil {
+ return err
+ }
+ if err := tx.Commit(); err != nil {
+ return err
+ }
+ id, err := result.LastInsertId()
+ if err != nil {
+ return err
+ }
+ createdId = id
+ return err
+ }); err != nil {
+ return 0, errors.Wrap(err, "failed article insert transaction")
+ }
+ return createdId, nil
+}
+
+func (a *ArticleComment) CreateArticleComment(newArticleComment *model.ArticleComment) (int64, error) {
+ var createdId int64
+ if err := dbutil.TXHandler(a.db, func(tx *sqlx.Tx) error {
+ result, err := repository.CreateArticleComment(tx, newArticleComment)
+ if err != nil {
+ return err
+ }
+ if err := tx.Commit(); err != nil {
+ return err
+ }
+ id, err := result.LastInsertId()
+ if err != nil {
+ return err
+ }
+ createdId = id
+ return err
+ }); err != nil {
+ return 0, errors.Wrap(err, "failed article insert transaction")
+ }
+ return createdId, nil
+}
+
+func (a *ArticleTag) CreateArticleTag(newArticleTag *model.ArticleTag) (int64, error) {
+ var createdId int64
+ if err := dbutil.TXHandler(a.db, func(tx *sqlx.Tx) error {
+ result, err := repository.CreateArticleTag(tx, newArticleTag)
if err != nil {
return err
}
diff --git a/database/Makefile b/database/Makefile
index 503de7c0a..7df9372d1 100644
--- a/database/Makefile
+++ b/database/Makefile
@@ -1,6 +1,6 @@
export GO111MODULE := off
-DBNAME:=treasure_app
+DBNAME:=arxiv_cloud
DATASOURCE:=root:password@tcp(127.0.0.1:3306)/$(DBNAME)
install:
diff --git a/database/migrations/1_init.sql b/database/migrations/201908141445_user.sql
similarity index 100%
rename from database/migrations/1_init.sql
rename to database/migrations/201908141445_user.sql
diff --git a/database/migrations/2_article.sql b/database/migrations/201908141450_article.sql
similarity index 72%
rename from database/migrations/2_article.sql
rename to database/migrations/201908141450_article.sql
index 2e4631c76..a6a07e550 100644
--- a/database/migrations/2_article.sql
+++ b/database/migrations/201908141450_article.sql
@@ -1,11 +1,13 @@
-- +goose Up
CREATE TABLE article (
id int(10) UNSIGNED NOT NULL AUTO_INCREMENT,
+ user_id int(10) UNSIGNED DEFAULT NULL,
title VARCHAR(255) NOT NULL DEFAULT '',
body TEXT,
ctime TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
utime TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
- PRIMARY KEY (id)
+ PRIMARY KEY (id),
+ CONSTRAINT article_fk_user FOREIGN KEY (user_id) REFERENCES user(id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- +goose Down
diff --git a/database/migrations/201908141500_article_comment.sql b/database/migrations/201908141500_article_comment.sql
new file mode 100644
index 000000000..5fb0b2ba1
--- /dev/null
+++ b/database/migrations/201908141500_article_comment.sql
@@ -0,0 +1,15 @@
+-- +goose Up
+CREATE TABLE article_comment (
+ id int(10) UNSIGNED NOT NULL AUTO_INCREMENT,
+ user_id int(10) UNSIGNED NOT NULL,
+ article_id int(10) UNSIGNED NOT NULL,
+ body VARCHAR(255),
+ ctime TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
+ utime TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
+ PRIMARY KEY (id),
+ CONSTRAINT comment_fk_user FOREIGN KEY (user_id) REFERENCES user (id) on delete cascade on update cascade,
+ CONSTRAINT comment_fk_article FOREIGN KEY (article_id) REFERENCES article (id) on delete cascade on update cascade
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
+
+-- +goose Down
+DROP TABLE article_comment;
diff --git a/database/migrations/201908141515_article_tag.sql b/database/migrations/201908141515_article_tag.sql
new file mode 100644
index 000000000..81c91b754
--- /dev/null
+++ b/database/migrations/201908141515_article_tag.sql
@@ -0,0 +1,12 @@
+-- +goose Up
+CREATE TABLE article_tag (
+ id int(10) UNSIGNED NOT NULL AUTO_INCREMENT,
+ article_id int(10) UNSIGNED NOT NULL,
+ tag VARCHAR(255) NOT NULL,
+ ctime TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
+ PRIMARY KEY (id),
+ CONSTRAINT article_tag_fk_article FOREIGN KEY (article_id) REFERENCES article (id) on delete cascade on update cascade
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
+
+-- +goose Down
+DROP TABLE article_tag;
\ No newline at end of file
diff --git a/frontend/.env.example b/frontend/.env.example
deleted file mode 100644
index 9d88696d6..000000000
--- a/frontend/.env.example
+++ /dev/null
@@ -1,8 +0,0 @@
-BACKEND_API_BASE=http://localhost:1991
-
-FIREBASE_APIKEY=
-FIREBASE_AUTHDOMAIN=
-FIREBASE_DATABASEURL=
-FIREBASE_PROJECTID=
-FIREBASE_MESSAGINGSENDERID=
-FIREBASE_APPID=
diff --git a/frontend/Makefile b/frontend/Makefile
index 347238b90..0fa8f0c49 100644
--- a/frontend/Makefile
+++ b/frontend/Makefile
@@ -13,3 +13,6 @@ setup: __clean install
__clean:
rm -rf .cache
rm -rf node_modules
+
+run:
+ npm start
\ No newline at end of file
diff --git a/frontend/README.md b/frontend/README.md
new file mode 100644
index 000000000..9d9614c4f
--- /dev/null
+++ b/frontend/README.md
@@ -0,0 +1,68 @@
+This project was bootstrapped with [Create React App](https://github.com/facebook/create-react-app).
+
+## Available Scripts
+
+In the project directory, you can run:
+
+### `npm start`
+
+Runs the app in the development mode.
+Open [http://localhost:3000](http://localhost:3000) to view it in the browser.
+
+The page will reload if you make edits.
+You will also see any lint errors in the console.
+
+### `npm test`
+
+Launches the test runner in the interactive watch mode.
+See the section about [running tests](https://facebook.github.io/create-react-app/docs/running-tests) for more information.
+
+### `npm run build`
+
+Builds the app for production to the `build` folder.
+It correctly bundles React in production mode and optimizes the build for the best performance.
+
+The build is minified and the filenames include the hashes.
+Your app is ready to be deployed!
+
+See the section about [deployment](https://facebook.github.io/create-react-app/docs/deployment) for more information.
+
+### `npm run eject`
+
+**Note: this is a one-way operation. Once you `eject`, you can’t go back!**
+
+If you aren’t satisfied with the build tool and configuration choices, you can `eject` at any time. This command will remove the single build dependency from your project.
+
+Instead, it will copy all the configuration files and the transitive dependencies (Webpack, Babel, ESLint, etc) right into your project so you have full control over them. All of the commands except `eject` will still work, but they will point to the copied scripts so you can tweak them. At this point you’re on your own.
+
+You don’t have to ever use `eject`. The curated feature set is suitable for small and middle deployments, and you shouldn’t feel obligated to use this feature. However we understand that this tool wouldn’t be useful if you couldn’t customize it when you are ready for it.
+
+## Learn More
+
+You can learn more in the [Create React App documentation](https://facebook.github.io/create-react-app/docs/getting-started).
+
+To learn React, check out the [React documentation](https://reactjs.org/).
+
+### Code Splitting
+
+This section has moved here: https://facebook.github.io/create-react-app/docs/code-splitting
+
+### Analyzing the Bundle Size
+
+This section has moved here: https://facebook.github.io/create-react-app/docs/analyzing-the-bundle-size
+
+### Making a Progressive Web App
+
+This section has moved here: https://facebook.github.io/create-react-app/docs/making-a-progressive-web-app
+
+### Advanced Configuration
+
+This section has moved here: https://facebook.github.io/create-react-app/docs/advanced-configuration
+
+### Deployment
+
+This section has moved here: https://facebook.github.io/create-react-app/docs/deployment
+
+### `npm run build` fails to minify
+
+This section has moved here: https://facebook.github.io/create-react-app/docs/troubleshooting#npm-run-build-fails-to-minify
diff --git a/frontend/build/asset-manifest.json b/frontend/build/asset-manifest.json
new file mode 100644
index 000000000..ba6948f16
--- /dev/null
+++ b/frontend/build/asset-manifest.json
@@ -0,0 +1,15 @@
+{
+ "files": {
+ "main.css": "/static/css/main.34de6062.chunk.css",
+ "main.js": "/static/js/main.b752a1aa.chunk.js",
+ "main.js.map": "/static/js/main.b752a1aa.chunk.js.map",
+ "runtime~main.js": "/static/js/runtime~main.821e3928.js",
+ "runtime~main.js.map": "/static/js/runtime~main.821e3928.js.map",
+ "static/js/2.ef6f1649.chunk.js": "/static/js/2.ef6f1649.chunk.js",
+ "static/js/2.ef6f1649.chunk.js.map": "/static/js/2.ef6f1649.chunk.js.map",
+ "index.html": "/index.html",
+ "precache-manifest.0d3b8b2eda5914b9b0c9ccb9e2aee7a0.js": "/precache-manifest.0d3b8b2eda5914b9b0c9ccb9e2aee7a0.js",
+ "service-worker.js": "/service-worker.js",
+ "static/css/main.34de6062.chunk.css.map": "/static/css/main.34de6062.chunk.css.map"
+ }
+}
\ No newline at end of file
diff --git a/frontend/build/favicon.ico b/frontend/build/favicon.ico
new file mode 100644
index 000000000..a11777cc4
Binary files /dev/null and b/frontend/build/favicon.ico differ
diff --git a/frontend/build/index.html b/frontend/build/index.html
new file mode 100644
index 000000000..49fc0ff99
--- /dev/null
+++ b/frontend/build/index.html
@@ -0,0 +1 @@
+React App
\ No newline at end of file
diff --git a/frontend/build/logo192.png b/frontend/build/logo192.png
new file mode 100644
index 000000000..fc44b0a37
Binary files /dev/null and b/frontend/build/logo192.png differ
diff --git a/frontend/build/logo512.png b/frontend/build/logo512.png
new file mode 100644
index 000000000..a4e47a654
Binary files /dev/null and b/frontend/build/logo512.png differ
diff --git a/frontend/build/manifest.json b/frontend/build/manifest.json
new file mode 100644
index 000000000..e4c94e632
--- /dev/null
+++ b/frontend/build/manifest.json
@@ -0,0 +1,25 @@
+{
+ "short_name": "React App",
+ "name": "Create React App Sample",
+ "icons": [
+ {
+ "src": "favicon.ico",
+ "sizes": "64x64 32x32 24x24 16x16",
+ "type": "image/x-icon"
+ },
+ {
+ "src": "logo192.png",
+ "type": "image/png",
+ "sizes": "192x192"
+ },
+ {
+ "src": "logo512.png",
+ "type": "image/png",
+ "sizes": "512x512"
+ }
+ ],
+ "start_url": ".",
+ "display": "standalone",
+ "theme_color": "#000000",
+ "background_color": "#ffffff"
+}
diff --git a/frontend/build/precache-manifest.0d3b8b2eda5914b9b0c9ccb9e2aee7a0.js b/frontend/build/precache-manifest.0d3b8b2eda5914b9b0c9ccb9e2aee7a0.js
new file mode 100644
index 000000000..6d9422c74
--- /dev/null
+++ b/frontend/build/precache-manifest.0d3b8b2eda5914b9b0c9ccb9e2aee7a0.js
@@ -0,0 +1,22 @@
+self.__precacheManifest = (self.__precacheManifest || []).concat([
+ {
+ "revision": "8f359a8869b70176e17ba86f8660e1b2",
+ "url": "/index.html"
+ },
+ {
+ "revision": "c6cb1671940993100e7f",
+ "url": "/static/css/main.34de6062.chunk.css"
+ },
+ {
+ "revision": "116948fd58f55f3e7061",
+ "url": "/static/js/2.ef6f1649.chunk.js"
+ },
+ {
+ "revision": "c6cb1671940993100e7f",
+ "url": "/static/js/main.b752a1aa.chunk.js"
+ },
+ {
+ "revision": "219707186523ad4b8cde",
+ "url": "/static/js/runtime~main.821e3928.js"
+ }
+]);
\ No newline at end of file
diff --git a/frontend/build/robots.txt b/frontend/build/robots.txt
new file mode 100644
index 000000000..01b0f9a10
--- /dev/null
+++ b/frontend/build/robots.txt
@@ -0,0 +1,2 @@
+# https://www.robotstxt.org/robotstxt.html
+User-agent: *
diff --git a/frontend/build/service-worker.js b/frontend/build/service-worker.js
new file mode 100644
index 000000000..f7ca91127
--- /dev/null
+++ b/frontend/build/service-worker.js
@@ -0,0 +1,39 @@
+/**
+ * Welcome to your Workbox-powered service worker!
+ *
+ * You'll need to register this file in your web app and you should
+ * disable HTTP caching for this file too.
+ * See https://goo.gl/nhQhGp
+ *
+ * The rest of the code is auto-generated. Please don't update this file
+ * directly; instead, make changes to your Workbox build configuration
+ * and re-run your build process.
+ * See https://goo.gl/2aRDsh
+ */
+
+importScripts("https://storage.googleapis.com/workbox-cdn/releases/4.3.1/workbox-sw.js");
+
+importScripts(
+ "/precache-manifest.0d3b8b2eda5914b9b0c9ccb9e2aee7a0.js"
+);
+
+self.addEventListener('message', (event) => {
+ if (event.data && event.data.type === 'SKIP_WAITING') {
+ self.skipWaiting();
+ }
+});
+
+workbox.core.clientsClaim();
+
+/**
+ * The workboxSW.precacheAndRoute() method efficiently caches and responds to
+ * requests for URLs in the manifest.
+ * See https://goo.gl/S9QRab
+ */
+self.__precacheManifest = [].concat(self.__precacheManifest || []);
+workbox.precaching.precacheAndRoute(self.__precacheManifest, {});
+
+workbox.routing.registerNavigationRoute(workbox.precaching.getCacheKeyForURL("/index.html"), {
+
+ blacklist: [/^\/_/,/\/[^\/?]+\.[^\/]+$/],
+});
diff --git a/frontend/build/static/css/main.34de6062.chunk.css b/frontend/build/static/css/main.34de6062.chunk.css
new file mode 100644
index 000000000..4ada487c8
--- /dev/null
+++ b/frontend/build/static/css/main.34de6062.chunk.css
@@ -0,0 +1,2 @@
+body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}
+/*# sourceMappingURL=main.34de6062.chunk.css.map */
\ No newline at end of file
diff --git a/frontend/build/static/css/main.34de6062.chunk.css.map b/frontend/build/static/css/main.34de6062.chunk.css.map
new file mode 100644
index 000000000..d7351b075
--- /dev/null
+++ b/frontend/build/static/css/main.34de6062.chunk.css.map
@@ -0,0 +1 @@
+{"version":3,"sources":["index.css"],"names":[],"mappings":"AAAA,KACE,QAAS,CACT,mIAEY,CACZ,kCAAmC,CACnC,iCACF,CAEA,KACE,uEAEF","file":"main.34de6062.chunk.css","sourcesContent":["body {\n margin: 0;\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", \"Roboto\", \"Oxygen\",\n \"Ubuntu\", \"Cantarell\", \"Fira Sans\", \"Droid Sans\", \"Helvetica Neue\",\n sans-serif;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n\ncode {\n font-family: source-code-pro, Menlo, Monaco, Consolas, \"Courier New\",\n monospace;\n}\n"]}
\ No newline at end of file
diff --git a/frontend/build/static/js/2.ef6f1649.chunk.js b/frontend/build/static/js/2.ef6f1649.chunk.js
new file mode 100644
index 000000000..c9be5401a
--- /dev/null
+++ b/frontend/build/static/js/2.ef6f1649.chunk.js
@@ -0,0 +1,2 @@
+(window.webpackJsonpfrontend=window.webpackJsonpfrontend||[]).push([[2],[function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r,i=n(6),o=n(21),a=n(22),u=((r={})["no-app"]="No Firebase App '{$appName}' has been created - call Firebase App.initializeApp()",r["bad-app-name"]="Illegal App name: '{$appName}",r["duplicate-app"]="Firebase App named '{$appName}' already exists",r["app-deleted"]="Firebase App named '{$appName}' already deleted",r["duplicate-service"]="Firebase service named '{$appName}' already registered",r["invalid-app-argument"]="firebase.{$appName}() takes either no argument or a Firebase App instance.",r),l=new o.ErrorFactory("app","Firebase",u),s="[DEFAULT]",c=[],f=function(){function e(e,t,n){this.firebase_=n,this.isDeleted_=!1,this.services_={},this.name_=t.name,this.automaticDataCollectionEnabled_=t.automaticDataCollectionEnabled||!1,this.options_=o.deepCopy(e),this.INTERNAL={getUid:function(){return null},getToken:function(){return Promise.resolve(null)},addAuthTokenListener:function(e){c.push(e),setTimeout(function(){return e(null)},0)},removeAuthTokenListener:function(e){c=c.filter(function(t){return t!==e})}}}return Object.defineProperty(e.prototype,"automaticDataCollectionEnabled",{get:function(){return this.checkDestroyed_(),this.automaticDataCollectionEnabled_},set:function(e){this.checkDestroyed_(),this.automaticDataCollectionEnabled_=e},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"name",{get:function(){return this.checkDestroyed_(),this.name_},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"options",{get:function(){return this.checkDestroyed_(),this.options_},enumerable:!0,configurable:!0}),e.prototype.delete=function(){var e=this;return new Promise(function(t){e.checkDestroyed_(),t()}).then(function(){e.firebase_.INTERNAL.removeApp(e.name_);for(var t=[],n=0,r=Object.keys(e.services_);n=0&&d.warn("\n Warning: You are trying to load Firebase while using Firebase Performance standalone script.\n You should load Firebase Performance with this instance of Firebase to avoid loading duplicate code.\n ")}var v=function e(){var t=function(e){var t={},n={},r={},i={__esModule:!0,initializeApp:function(n,r){void 0===r&&(r={}),"object"===typeof r&&null!==r||(r={name:r});var a=r;void 0===a.name&&(a.name=s);var u=a.name;if("string"!==typeof u||!u)throw l.create("bad-app-name",{appName:String(u)});if(o.contains(t,u))throw l.create("duplicate-app",{appName:u});var f=new e(n,a,i);return t[u]=f,c(f,"create"),f},app:a,apps:null,SDK_VERSION:h,INTERNAL:{registerService:function(t,s,c,f,h){if(void 0===h&&(h=!1),n[t])throw l.create("duplicate-service",{appName:t});function d(e){if(void 0===e&&(e=a()),"function"!==typeof e[t])throw l.create("invalid-app-argument",{appName:t});return e[t]()}return n[t]=s,f&&(r[t]=f,u().forEach(function(e){f("create",e)})),void 0!==c&&o.deepExtend(d,c),i[t]=d,e.prototype[t]=function(){for(var e=[],n=0;n=0;u--)(i=e[u])&&(a=(o<3?i(a):o>3?i(t,n,a):i(t,n))||a);return o>3&&a&&Object.defineProperty(t,n,a),a}function l(e,t){return function(n,r){t(n,r,e)}}function s(e,t){if("object"===typeof Reflect&&"function"===typeof Reflect.metadata)return Reflect.metadata(e,t)}function c(e,t,n,r){return new(n||(n=Promise))(function(i,o){function a(e){try{l(r.next(e))}catch(t){o(t)}}function u(e){try{l(r.throw(e))}catch(t){o(t)}}function l(e){e.done?i(e.value):new n(function(t){t(e.value)}).then(a,u)}l((r=r.apply(e,t||[])).next())})}function f(e,t){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:u(0),throw:u(1),return:u(2)},"function"===typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function u(o){return function(u){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=(i=a.trys).length>0&&i[i.length-1])&&(6===o[0]||2===o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}}}function p(e,t){var n="function"===typeof Symbol&&e[Symbol.iterator];if(!n)return e;var r,i,o=n.call(e),a=[];try{for(;(void 0===t||t-- >0)&&!(r=o.next()).done;)a.push(r.value)}catch(u){i={error:u}}finally{try{r&&!r.done&&(n=o.return)&&n.call(o)}finally{if(i)throw i.error}}return a}function v(){for(var e=[],t=0;t1||u(e,t)})})}function u(e,t){try{(n=i[e](t)).value instanceof y?Promise.resolve(n.value.v).then(l,s):c(o[0][2],n)}catch(r){c(o[0][3],r)}var n}function l(e){u("next",e)}function s(e){u("throw",e)}function c(e,t){e(t),o.shift(),o.length&&u(o[0][0],o[0][1])}}function b(e){var t,n;return t={},r("next"),r("throw",function(e){throw e}),r("return"),t[Symbol.iterator]=function(){return this},t;function r(r,i){t[r]=e[r]?function(t){return(n=!n)?{value:y(e[r](t)),done:"return"===r}:i?i(t):t}:i}}function w(e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var t,n=e[Symbol.asyncIterator];return n?n.call(e):(e=d(e),t={},r("next"),r("throw"),r("return"),t[Symbol.asyncIterator]=function(){return this},t);function r(n){t[n]=e[n]&&function(t){return new Promise(function(r,i){(function(e,t,n,r){Promise.resolve(r).then(function(t){e({value:t,done:n})},t)})(r,i,(t=e[n](t)).done,t.value)})}}}function E(e,t){return Object.defineProperty?Object.defineProperty(e,"raw",{value:t}):e.raw=t,e}function k(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}function T(e){return e&&e.__esModule?e:{default:e}}},function(e,t){var n;n=function(){return this}();try{n=n||new Function("return this")()}catch(r){"object"===typeof window&&(n=window)}e.exports=n},function(e,t,n){"use strict";!function e(){if("undefined"!==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&"function"===typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE)try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(t){console.error(t)}}(),e.exports=n(16)},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}n.d(t,"a",function(){return r})},function(e,t,n){"use strict";function r(e,t){for(var n=0;nR.length&&R.push(e)}function M(e,t,n){return null==e?0:function e(t,n,r,i){var u=typeof t;"undefined"!==u&&"boolean"!==u||(t=null);var l=!1;if(null===t)l=!0;else switch(u){case"string":case"number":l=!0;break;case"object":switch(t.$$typeof){case o:case a:l=!0}}if(l)return r(i,t,""===n?"."+j(t,0):n),1;if(l=0,n=""===n?".":n+":",Array.isArray(t))for(var s=0;sthis.eventPool.length&&this.eventPool.push(e)}function fe(e){e.eventPool=[],e.getPooled=se,e.release=ce}i(le.prototype,{preventDefault:function(){this.defaultPrevented=!0;var e=this.nativeEvent;e&&(e.preventDefault?e.preventDefault():"unknown"!==typeof e.returnValue&&(e.returnValue=!1),this.isDefaultPrevented=ae)},stopPropagation:function(){var e=this.nativeEvent;e&&(e.stopPropagation?e.stopPropagation():"unknown"!==typeof e.cancelBubble&&(e.cancelBubble=!0),this.isPropagationStopped=ae)},persist:function(){this.isPersistent=ae},isPersistent:ue,destructor:function(){var e,t=this.constructor.Interface;for(e in t)this[e]=null;this.nativeEvent=this._targetInst=this.dispatchConfig=null,this.isPropagationStopped=this.isDefaultPrevented=ue,this._dispatchInstances=this._dispatchListeners=null}}),le.Interface={type:null,target:null,currentTarget:function(){return null},eventPhase:null,bubbles:null,cancelable:null,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:null,isTrusted:null},le.extend=function(e){function t(){}function n(){return r.apply(this,arguments)}var r=this;t.prototype=r.prototype;var o=new t;return i(o,n.prototype),n.prototype=o,n.prototype.constructor=n,n.Interface=i({},r.Interface,e),n.extend=r.extend,fe(n),n},fe(le);var he=le.extend({data:null}),de=le.extend({data:null}),pe=[9,13,27,32],ve=K&&"CompositionEvent"in window,me=null;K&&"documentMode"in document&&(me=document.documentMode);var ye=K&&"TextEvent"in window&&!me,ge=K&&(!ve||me&&8=me),be=String.fromCharCode(32),we={beforeInput:{phasedRegistrationNames:{bubbled:"onBeforeInput",captured:"onBeforeInputCapture"},dependencies:["compositionend","keypress","textInput","paste"]},compositionEnd:{phasedRegistrationNames:{bubbled:"onCompositionEnd",captured:"onCompositionEndCapture"},dependencies:"blur compositionend keydown keypress keyup mousedown".split(" ")},compositionStart:{phasedRegistrationNames:{bubbled:"onCompositionStart",captured:"onCompositionStartCapture"},dependencies:"blur compositionstart keydown keypress keyup mousedown".split(" ")},compositionUpdate:{phasedRegistrationNames:{bubbled:"onCompositionUpdate",captured:"onCompositionUpdateCapture"},dependencies:"blur compositionupdate keydown keypress keyup mousedown".split(" ")}},Ee=!1;function ke(e,t){switch(e){case"keyup":return-1!==pe.indexOf(t.keyCode);case"keydown":return 229!==t.keyCode;case"keypress":case"mousedown":case"blur":return!0;default:return!1}}function Te(e){return"object"===typeof(e=e.detail)&&"data"in e?e.data:null}var _e=!1;var Se={eventTypes:we,extractEvents:function(e,t,n,r){var i=void 0,o=void 0;if(ve)e:{switch(e){case"compositionstart":i=we.compositionStart;break e;case"compositionend":i=we.compositionEnd;break e;case"compositionupdate":i=we.compositionUpdate;break e}i=void 0}else _e?ke(e,n)&&(i=we.compositionEnd):"keydown"===e&&229===n.keyCode&&(i=we.compositionStart);return i?(ge&&"ko"!==n.locale&&(_e||i!==we.compositionStart?i===we.compositionEnd&&_e&&(o=oe()):(re="value"in(ne=r)?ne.value:ne.textContent,_e=!0)),i=he.getPooled(i,t,n,r),o?i.data=o:null!==(o=Te(n))&&(i.data=o),H(i),o=i):o=null,(e=ye?function(e,t){switch(e){case"compositionend":return Te(t);case"keypress":return 32!==t.which?null:(Ee=!0,be);case"textInput":return(e=t.data)===be&&Ee?null:e;default:return null}}(e,n):function(e,t){if(_e)return"compositionend"===e||!ve&&ke(e,t)?(e=oe(),ie=re=ne=null,_e=!1,e):null;switch(e){case"paste":return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1t}return!1}(t,n,i,r)&&(n=null),r||null===i?function(e){return!!ht.call(pt,e)||!ht.call(dt,e)&&(ft.test(e)?pt[e]=!0:(dt[e]=!0,!1))}(t)&&(null===n?e.removeAttribute(t):e.setAttribute(t,""+n)):i.mustUseProperty?e[i.propertyName]=null===n?3!==i.type&&"":n:(t=i.attributeName,r=i.attributeNamespace,null===n?e.removeAttribute(t):(n=3===(i=i.type)||4===i&&!0===n?"":""+n,r?e.setAttributeNS(r,t,n):e.setAttribute(t,n))))}function wt(e){switch(typeof e){case"boolean":case"number":case"object":case"string":case"undefined":return e;default:return""}}function Et(e,t){var n=t.checked;return i({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=n?n:e._wrapperState.initialChecked})}function kt(e,t){var n=null==t.defaultValue?"":t.defaultValue,r=null!=t.checked?t.checked:t.defaultChecked;n=wt(null!=t.value?t.value:n),e._wrapperState={initialChecked:r,initialValue:n,controlled:"checkbox"===t.type||"radio"===t.type?null!=t.checked:null!=t.value}}function Tt(e,t){null!=(t=t.checked)&&bt(e,"checked",t,!1)}function _t(e,t){Tt(e,t);var n=wt(t.value),r=t.type;if(null!=n)"number"===r?(0===n&&""===e.value||e.value!=n)&&(e.value=""+n):e.value!==""+n&&(e.value=""+n);else if("submit"===r||"reset"===r)return void e.removeAttribute("value");t.hasOwnProperty("value")?It(e,t.type,n):t.hasOwnProperty("defaultValue")&&It(e,t.type,wt(t.defaultValue)),null==t.checked&&null!=t.defaultChecked&&(e.defaultChecked=!!t.defaultChecked)}function St(e,t,n){if(t.hasOwnProperty("value")||t.hasOwnProperty("defaultValue")){var r=t.type;if(!("submit"!==r&&"reset"!==r||void 0!==t.value&&null!==t.value))return;t=""+e._wrapperState.initialValue,n||t===e.value||(e.value=t),e.defaultValue=t}""!==(n=e.name)&&(e.name=""),e.defaultChecked=!e.defaultChecked,e.defaultChecked=!!e._wrapperState.initialChecked,""!==n&&(e.name=n)}function It(e,t,n){"number"===t&&e.ownerDocument.activeElement===e||(null==n?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+n&&(e.defaultValue=""+n))}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach(function(e){var t=e.replace(yt,gt);mt[t]=new vt(t,1,!1,e,null,!1)}),"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(e){var t=e.replace(yt,gt);mt[t]=new vt(t,1,!1,e,"http://www.w3.org/1999/xlink",!1)}),["xml:base","xml:lang","xml:space"].forEach(function(e){var t=e.replace(yt,gt);mt[t]=new vt(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1)}),["tabIndex","crossOrigin"].forEach(function(e){mt[e]=new vt(e,1,!1,e.toLowerCase(),null,!1)}),mt.xlinkHref=new vt("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0),["src","href","action","formAction"].forEach(function(e){mt[e]=new vt(e,1,!1,e.toLowerCase(),null,!0)});var xt={change:{phasedRegistrationNames:{bubbled:"onChange",captured:"onChangeCapture"},dependencies:"blur change click focus input keydown keyup selectionchange".split(" ")}};function Nt(e,t,n){return(e=le.getPooled(xt.change,e,t,n)).type="change",Ae(n),H(e),e}var Ct=null,At=null;function Pt(e){C(e)}function Ot(e){if(He(j(e)))return e}function Rt(e,t){if("change"===e)return t}var Dt=!1;function Lt(){Ct&&(Ct.detachEvent("onpropertychange",Mt),At=Ct=null)}function Mt(e){if("value"===e.propertyName&&Ot(At))if(e=Nt(At,e,Ve(e)),Me)C(e);else{Me=!0;try{Oe(Pt,e)}finally{Me=!1,je()}}}function jt(e,t,n){"focus"===e?(Lt(),At=n,(Ct=t).attachEvent("onpropertychange",Mt)):"blur"===e&&Lt()}function Ut(e){if("selectionchange"===e||"keyup"===e||"keydown"===e)return Ot(At)}function Ft(e,t){if("click"===e)return Ot(t)}function Vt(e,t){if("input"===e||"change"===e)return Ot(t)}K&&(Dt=ze("input")&&(!document.documentMode||9Pn.length&&Pn.push(e)}}}var jn=new("function"===typeof WeakMap?WeakMap:Map);function Un(e){var t=jn.get(e);return void 0===t&&(t=new Set,jn.set(e,t)),t}function Fn(e){if("undefined"===typeof(e=e||("undefined"!==typeof document?document:void 0)))return null;try{return e.activeElement||e.body}catch(t){return e.body}}function Vn(e){for(;e&&e.firstChild;)e=e.firstChild;return e}function zn(e,t){var n,r=Vn(e);for(e=0;r;){if(3===r.nodeType){if(n=e+r.textContent.length,e<=t&&n>=t)return{node:r,offset:t-e};e=n}e:{for(;r;){if(r.nextSibling){r=r.nextSibling;break e}r=r.parentNode}r=void 0}r=Vn(r)}}function Bn(){for(var e=window,t=Fn();t instanceof e.HTMLIFrameElement;){try{var n="string"===typeof t.contentWindow.location.href}catch(r){n=!1}if(!n)break;t=Fn((e=t.contentWindow).document)}return t}function Wn(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&("input"===t&&("text"===e.type||"search"===e.type||"tel"===e.type||"url"===e.type||"password"===e.type)||"textarea"===t||"true"===e.contentEditable)}var Hn=K&&"documentMode"in document&&11>=document.documentMode,Kn={select:{phasedRegistrationNames:{bubbled:"onSelect",captured:"onSelectCapture"},dependencies:"blur contextmenu dragend focus keydown keyup mousedown mouseup selectionchange".split(" ")}},qn=null,Gn=null,Xn=null,$n=!1;function Yn(e,t){var n=t.window===t?t.document:9===t.nodeType?t:t.ownerDocument;return $n||null==qn||qn!==Fn(n)?null:("selectionStart"in(n=qn)&&Wn(n)?n={start:n.selectionStart,end:n.selectionEnd}:n={anchorNode:(n=(n.ownerDocument&&n.ownerDocument.defaultView||window).getSelection()).anchorNode,anchorOffset:n.anchorOffset,focusNode:n.focusNode,focusOffset:n.focusOffset},Xn&&nn(Xn,n)?null:(Xn=n,(e=le.getPooled(Kn.select,Gn,e,t)).type="select",e.target=qn,H(e),e))}var Jn={eventTypes:Kn,extractEvents:function(e,t,n,r){var i,o=r.window===r?r.document:9===r.nodeType?r:r.ownerDocument;if(!(i=!o)){e:{o=Un(o),i=p.onSelect;for(var a=0;a=t.length))throw a(Error(93));t=t[0]}n=t}null==n&&(n="")}e._wrapperState={initialValue:wt(n)}}function nr(e,t){var n=wt(t.value),r=wt(t.defaultValue);null!=n&&((n=""+n)!==e.value&&(e.value=n),null==t.defaultValue&&e.defaultValue!==n&&(e.defaultValue=n)),null!=r&&(e.defaultValue=""+r)}function rr(e){var t=e.textContent;t===e._wrapperState.initialValue&&(e.value=t)}A.injectEventPluginOrder("ResponderEventPlugin SimpleEventPlugin EnterLeaveEventPlugin ChangeEventPlugin SelectEventPlugin BeforeInputEventPlugin".split(" ")),E=U,k=M,T=j,A.injectEventPluginsByName({SimpleEventPlugin:Cn,EnterLeaveEventPlugin:Zt,ChangeEventPlugin:zt,SelectEventPlugin:Jn,BeforeInputEventPlugin:Se});var ir={html:"http://www.w3.org/1999/xhtml",mathml:"http://www.w3.org/1998/Math/MathML",svg:"http://www.w3.org/2000/svg"};function or(e){switch(e){case"svg":return"http://www.w3.org/2000/svg";case"math":return"http://www.w3.org/1998/Math/MathML";default:return"http://www.w3.org/1999/xhtml"}}function ar(e,t){return null==e||"http://www.w3.org/1999/xhtml"===e?or(t):"http://www.w3.org/2000/svg"===e&&"foreignObject"===t?"http://www.w3.org/1999/xhtml":e}var ur=void 0,lr=function(e){return"undefined"!==typeof MSApp&&MSApp.execUnsafeLocalFunction?function(t,n,r,i){MSApp.execUnsafeLocalFunction(function(){return e(t,n)})}:e}(function(e,t){if(e.namespaceURI!==ir.svg||"innerHTML"in e)e.innerHTML=t;else{for((ur=ur||document.createElement("div")).innerHTML="",t=ur.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}});function sr(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&3===n.nodeType)return void(n.nodeValue=t)}e.textContent=t}var cr={animationIterationCount:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},fr=["Webkit","ms","Moz","O"];function hr(e,t,n){return null==t||"boolean"===typeof t||""===t?"":n||"number"!==typeof t||0===t||cr.hasOwnProperty(e)&&cr[e]?(""+t).trim():t+"px"}function dr(e,t){for(var n in e=e.style,t)if(t.hasOwnProperty(n)){var r=0===n.indexOf("--"),i=hr(n,t[n],r);"float"===n&&(n="cssFloat"),r?e.setProperty(n,i):e[n]=i}}Object.keys(cr).forEach(function(e){fr.forEach(function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),cr[t]=cr[e]})});var pr=i({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function vr(e,t){if(t){if(pr[e]&&(null!=t.children||null!=t.dangerouslySetInnerHTML))throw a(Error(137),e,"");if(null!=t.dangerouslySetInnerHTML){if(null!=t.children)throw a(Error(60));if(!("object"===typeof t.dangerouslySetInnerHTML&&"__html"in t.dangerouslySetInnerHTML))throw a(Error(61))}if(null!=t.style&&"object"!==typeof t.style)throw a(Error(62),"")}}function mr(e,t){if(-1===e.indexOf("-"))return"string"===typeof t.is;switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}function yr(e,t){var n=Un(e=9===e.nodeType||11===e.nodeType?e:e.ownerDocument);t=p[t];for(var r=0;rxr||(e.current=Ir[xr],Ir[xr]=null,xr--)}function Cr(e,t){Ir[++xr]=e.current,e.current=t}var Ar={},Pr={current:Ar},Or={current:!1},Rr=Ar;function Dr(e,t){var n=e.type.contextTypes;if(!n)return Ar;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===t)return r.__reactInternalMemoizedMaskedChildContext;var i,o={};for(i in n)o[i]=t[i];return r&&((e=e.stateNode).__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=o),o}function Lr(e){return null!==(e=e.childContextTypes)&&void 0!==e}function Mr(e){Nr(Or),Nr(Pr)}function jr(e){Nr(Or),Nr(Pr)}function Ur(e,t,n){if(Pr.current!==Ar)throw a(Error(168));Cr(Pr,t),Cr(Or,n)}function Fr(e,t,n){var r=e.stateNode;if(e=t.childContextTypes,"function"!==typeof r.getChildContext)return n;for(var o in r=r.getChildContext())if(!(o in e))throw a(Error(108),st(t)||"Unknown",o);return i({},n,r)}function Vr(e){var t=e.stateNode;return t=t&&t.__reactInternalMemoizedMergedChildContext||Ar,Rr=Pr.current,Cr(Pr,t),Cr(Or,Or.current),!0}function zr(e,t,n){var r=e.stateNode;if(!r)throw a(Error(169));n?(t=Fr(e,t,Rr),r.__reactInternalMemoizedMergedChildContext=t,Nr(Or),Nr(Pr),Cr(Pr,t)):Nr(Or),Cr(Or,n)}var Br=o.unstable_runWithPriority,Wr=o.unstable_scheduleCallback,Hr=o.unstable_cancelCallback,Kr=o.unstable_shouldYield,qr=o.unstable_requestPaint,Gr=o.unstable_now,Xr=o.unstable_getCurrentPriorityLevel,$r=o.unstable_ImmediatePriority,Yr=o.unstable_UserBlockingPriority,Jr=o.unstable_NormalPriority,Qr=o.unstable_LowPriority,Zr=o.unstable_IdlePriority,ei={},ti=void 0!==qr?qr:function(){},ni=null,ri=null,ii=!1,oi=Gr(),ai=1e4>oi?Gr:function(){return Gr()-oi};function ui(){switch(Xr()){case $r:return 99;case Yr:return 98;case Jr:return 97;case Qr:return 96;case Zr:return 95;default:throw a(Error(332))}}function li(e){switch(e){case 99:return $r;case 98:return Yr;case 97:return Jr;case 96:return Qr;case 95:return Zr;default:throw a(Error(332))}}function si(e,t){return e=li(e),Br(e,t)}function ci(e,t,n){return e=li(e),Wr(e,t,n)}function fi(e){return null===ni?(ni=[e],ri=Wr($r,di)):ni.push(e),ei}function hi(){null!==ri&&Hr(ri),di()}function di(){if(!ii&&null!==ni){ii=!0;var e=0;try{var t=ni;si(99,function(){for(;e=(e=10*(1073741821-t)-10*(1073741821-e))?99:250>=e?98:5250>=e?97:95}function vi(e,t){if(e&&e.defaultProps)for(var n in t=i({},t),e=e.defaultProps)void 0===t[n]&&(t[n]=e[n]);return t}var mi={current:null},yi=null,gi=null,bi=null;function wi(){bi=gi=yi=null}function Ei(e,t){var n=e.type._context;Cr(mi,n._currentValue),n._currentValue=t}function ki(e){var t=mi.current;Nr(mi),e.type._context._currentValue=t}function Ti(e,t){for(;null!==e;){var n=e.alternate;if(e.childExpirationTime=t&&(la=!0),e.firstContext=null)}function Si(e,t){if(bi!==e&&!1!==t&&0!==t)if("number"===typeof t&&1073741823!==t||(bi=e,t=1073741823),t={context:e,observedBits:t,next:null},null===gi){if(null===yi)throw a(Error(308));gi=t,yi.dependencies={expirationTime:0,firstContext:t,responders:null}}else gi=gi.next=t;return e._currentValue}var Ii=!1;function xi(e){return{baseState:e,firstUpdate:null,lastUpdate:null,firstCapturedUpdate:null,lastCapturedUpdate:null,firstEffect:null,lastEffect:null,firstCapturedEffect:null,lastCapturedEffect:null}}function Ni(e){return{baseState:e.baseState,firstUpdate:e.firstUpdate,lastUpdate:e.lastUpdate,firstCapturedUpdate:null,lastCapturedUpdate:null,firstEffect:null,lastEffect:null,firstCapturedEffect:null,lastCapturedEffect:null}}function Ci(e,t){return{expirationTime:e,suspenseConfig:t,tag:0,payload:null,callback:null,next:null,nextEffect:null}}function Ai(e,t){null===e.lastUpdate?e.firstUpdate=e.lastUpdate=t:(e.lastUpdate.next=t,e.lastUpdate=t)}function Pi(e,t){var n=e.alternate;if(null===n){var r=e.updateQueue,i=null;null===r&&(r=e.updateQueue=xi(e.memoizedState))}else r=e.updateQueue,i=n.updateQueue,null===r?null===i?(r=e.updateQueue=xi(e.memoizedState),i=n.updateQueue=xi(n.memoizedState)):r=e.updateQueue=Ni(i):null===i&&(i=n.updateQueue=Ni(r));null===i||r===i?Ai(r,t):null===r.lastUpdate||null===i.lastUpdate?(Ai(r,t),Ai(i,t)):(Ai(r,t),i.lastUpdate=t)}function Oi(e,t){var n=e.updateQueue;null===(n=null===n?e.updateQueue=xi(e.memoizedState):Ri(e,n)).lastCapturedUpdate?n.firstCapturedUpdate=n.lastCapturedUpdate=t:(n.lastCapturedUpdate.next=t,n.lastCapturedUpdate=t)}function Ri(e,t){var n=e.alternate;return null!==n&&t===n.updateQueue&&(t=e.updateQueue=Ni(t)),t}function Di(e,t,n,r,o,a){switch(n.tag){case 1:return"function"===typeof(e=n.payload)?e.call(a,r,o):e;case 3:e.effectTag=-2049&e.effectTag|64;case 0:if(null===(o="function"===typeof(e=n.payload)?e.call(a,r,o):e)||void 0===o)break;return i({},r,o);case 2:Ii=!0}return r}function Li(e,t,n,r,i){Ii=!1;for(var o=(t=Ri(e,t)).baseState,a=null,u=0,l=t.firstUpdate,s=o;null!==l;){var c=l.expirationTime;cv?(m=f,f=null):m=f.sibling;var y=d(i,f,u[v],l);if(null===y){null===f&&(f=m);break}e&&f&&null===y.alternate&&t(i,f),a=o(y,a,v),null===c?s=y:c.sibling=y,c=y,f=m}if(v===u.length)return n(i,f),s;if(null===f){for(;vm?(y=v,v=null):y=v.sibling;var b=d(i,v,g.value,s);if(null===b){null===v&&(v=y);break}e&&v&&null===b.alternate&&t(i,v),u=o(b,u,m),null===f?c=b:f.sibling=b,f=b,v=y}if(g.done)return n(i,v),c;if(null===v){for(;!g.done;m++,g=l.next())null!==(g=h(i,g.value,s))&&(u=o(g,u,m),null===f?c=g:f.sibling=g,f=g);return c}for(v=r(i,v);!g.done;m++,g=l.next())null!==(g=p(v,i,m,g.value,s))&&(e&&null!==g.alternate&&v.delete(null===g.key?m:g.key),u=o(g,u,m),null===f?c=g:f.sibling=g,f=g);return e&&v.forEach(function(e){return t(i,e)}),c}return function(e,r,o,l){var s="object"===typeof o&&null!==o&&o.type===Ye&&null===o.key;s&&(o=o.props.children);var c="object"===typeof o&&null!==o;if(c)switch(o.$$typeof){case Xe:e:{for(c=o.key,s=r;null!==s;){if(s.key===c){if(7===s.tag?o.type===Ye:s.elementType===o.type){n(e,s.sibling),(r=i(s,o.type===Ye?o.props.children:o.props)).ref=Gi(e,s,o),r.return=e,e=r;break e}n(e,s);break}t(e,s),s=s.sibling}o.type===Ye?((r=tl(o.props.children,e.mode,l,o.key)).return=e,e=r):((l=el(o.type,o.key,o.props,null,e.mode,l)).ref=Gi(e,r,o),l.return=e,e=l)}return u(e);case $e:e:{for(s=o.key;null!==r;){if(r.key===s){if(4===r.tag&&r.stateNode.containerInfo===o.containerInfo&&r.stateNode.implementation===o.implementation){n(e,r.sibling),(r=i(r,o.children||[])).return=e,e=r;break e}n(e,r);break}t(e,r),r=r.sibling}(r=rl(o,e.mode,l)).return=e,e=r}return u(e)}if("string"===typeof o||"number"===typeof o)return o=""+o,null!==r&&6===r.tag?(n(e,r.sibling),(r=i(r,o)).return=e,e=r):(n(e,r),(r=nl(o,e.mode,l)).return=e,e=r),u(e);if(qi(o))return v(e,r,o,l);if(lt(o))return m(e,r,o,l);if(c&&Xi(e,o),"undefined"===typeof o&&!s)switch(e.tag){case 1:case 0:throw e=e.type,a(Error(152),e.displayName||e.name||"Component")}return n(e,r)}}var Yi=$i(!0),Ji=$i(!1),Qi={},Zi={current:Qi},eo={current:Qi},to={current:Qi};function no(e){if(e===Qi)throw a(Error(174));return e}function ro(e,t){Cr(to,t),Cr(eo,e),Cr(Zi,Qi);var n=t.nodeType;switch(n){case 9:case 11:t=(t=t.documentElement)?t.namespaceURI:ar(null,"");break;default:t=ar(t=(n=8===n?t.parentNode:t).namespaceURI||null,n=n.tagName)}Nr(Zi),Cr(Zi,t)}function io(e){Nr(Zi),Nr(eo),Nr(to)}function oo(e){no(to.current);var t=no(Zi.current),n=ar(t,e.type);t!==n&&(Cr(eo,e),Cr(Zi,n))}function ao(e){eo.current===e&&(Nr(Zi),Nr(eo))}var uo=1,lo=1,so=2,co={current:0};function fo(e){for(var t=e;null!==t;){if(13===t.tag){if(null!==t.memoizedState)return t}else if(19===t.tag&&void 0!==t.memoizedProps.revealOrder){if(0!==(64&t.effectTag))return t}else if(null!==t.child){t.child.return=t,t=t.child;continue}if(t===e)break;for(;null===t.sibling;){if(null===t.return||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}return null}var ho=0,po=2,vo=4,mo=8,yo=16,go=32,bo=64,wo=128,Eo=Ke.ReactCurrentDispatcher,ko=0,To=null,_o=null,So=null,Io=null,xo=null,No=null,Co=0,Ao=null,Po=0,Oo=!1,Ro=null,Do=0;function Lo(){throw a(Error(321))}function Mo(e,t){if(null===t)return!1;for(var n=0;nCo&&(Co=f)):(Fu(f,s.suspenseConfig),o=s.eagerReducer===e?s.eagerState:e(o,s.action)),u=s,s=s.next}while(null!==s&&s!==r);c||(l=u,i=o),en(o,t.memoizedState)||(la=!0),t.memoizedState=o,t.baseUpdate=l,t.baseState=i,n.lastRenderedState=o}return[t.memoizedState,n.dispatch]}function Wo(e,t,n,r){return e={tag:e,create:t,destroy:n,deps:r,next:null},null===Ao?(Ao={lastEffect:null}).lastEffect=e.next=e:null===(t=Ao.lastEffect)?Ao.lastEffect=e.next=e:(n=t.next,t.next=e,e.next=n,Ao.lastEffect=e),e}function Ho(e,t,n,r){var i=Fo();Po|=e,i.memoizedState=Wo(t,n,void 0,void 0===r?null:r)}function Ko(e,t,n,r){var i=Vo();r=void 0===r?null:r;var o=void 0;if(null!==_o){var a=_o.memoizedState;if(o=a.destroy,null!==r&&Mo(r,a.deps))return void Wo(ho,n,o,r)}Po|=e,i.memoizedState=Wo(t,n,o,r)}function qo(e,t){return"function"===typeof t?(e=e(),t(e),function(){t(null)}):null!==t&&void 0!==t?(e=e(),t.current=e,function(){t.current=null}):void 0}function Go(){}function Xo(e,t,n){if(!(25>Do))throw a(Error(301));var r=e.alternate;if(e===To||null!==r&&r===To)if(Oo=!0,e={expirationTime:ko,suspenseConfig:null,action:n,eagerReducer:null,eagerState:null,next:null},null===Ro&&(Ro=new Map),void 0===(n=Ro.get(t)))Ro.set(t,e);else{for(t=n;null!==t.next;)t=t.next;t.next=e}else{var i=Iu(),o=Ui.suspense;o={expirationTime:i=xu(i,e,o),suspenseConfig:o,action:n,eagerReducer:null,eagerState:null,next:null};var u=t.last;if(null===u)o.next=o;else{var l=u.next;null!==l&&(o.next=l),u.next=o}if(t.last=o,0===e.expirationTime&&(null===r||0===r.expirationTime)&&null!==(r=t.lastRenderedReducer))try{var s=t.lastRenderedState,c=r(s,n);if(o.eagerReducer=r,o.eagerState=c,en(c,s))return}catch(f){}Cu(e,i)}}var $o={readContext:Si,useCallback:Lo,useContext:Lo,useEffect:Lo,useImperativeHandle:Lo,useLayoutEffect:Lo,useMemo:Lo,useReducer:Lo,useRef:Lo,useState:Lo,useDebugValue:Lo,useResponder:Lo},Yo={readContext:Si,useCallback:function(e,t){return Fo().memoizedState=[e,void 0===t?null:t],e},useContext:Si,useEffect:function(e,t){return Ho(516,wo|bo,e,t)},useImperativeHandle:function(e,t,n){return n=null!==n&&void 0!==n?n.concat([e]):null,Ho(4,vo|go,qo.bind(null,t,e),n)},useLayoutEffect:function(e,t){return Ho(4,vo|go,e,t)},useMemo:function(e,t){var n=Fo();return t=void 0===t?null:t,e=e(),n.memoizedState=[e,t],e},useReducer:function(e,t,n){var r=Fo();return t=void 0!==n?n(t):t,r.memoizedState=r.baseState=t,e=(e=r.queue={last:null,dispatch:null,lastRenderedReducer:e,lastRenderedState:t}).dispatch=Xo.bind(null,To,e),[r.memoizedState,e]},useRef:function(e){return e={current:e},Fo().memoizedState=e},useState:function(e){var t=Fo();return"function"===typeof e&&(e=e()),t.memoizedState=t.baseState=e,e=(e=t.queue={last:null,dispatch:null,lastRenderedReducer:zo,lastRenderedState:e}).dispatch=Xo.bind(null,To,e),[t.memoizedState,e]},useDebugValue:Go,useResponder:rn},Jo={readContext:Si,useCallback:function(e,t){var n=Vo();t=void 0===t?null:t;var r=n.memoizedState;return null!==r&&null!==t&&Mo(t,r[1])?r[0]:(n.memoizedState=[e,t],e)},useContext:Si,useEffect:function(e,t){return Ko(516,wo|bo,e,t)},useImperativeHandle:function(e,t,n){return n=null!==n&&void 0!==n?n.concat([e]):null,Ko(4,vo|go,qo.bind(null,t,e),n)},useLayoutEffect:function(e,t){return Ko(4,vo|go,e,t)},useMemo:function(e,t){var n=Vo();t=void 0===t?null:t;var r=n.memoizedState;return null!==r&&null!==t&&Mo(t,r[1])?r[0]:(e=e(),n.memoizedState=[e,t],e)},useReducer:Bo,useRef:function(){return Vo().memoizedState},useState:function(e){return Bo(zo)},useDebugValue:Go,useResponder:rn},Qo=null,Zo=null,ea=!1;function ta(e,t){var n=Ju(5,null,null,0);n.elementType="DELETED",n.type="DELETED",n.stateNode=t,n.return=e,n.effectTag=8,null!==e.lastEffect?(e.lastEffect.nextEffect=n,e.lastEffect=n):e.firstEffect=e.lastEffect=n}function na(e,t){switch(e.tag){case 5:var n=e.type;return null!==(t=1!==t.nodeType||n.toLowerCase()!==t.nodeName.toLowerCase()?null:t)&&(e.stateNode=t,!0);case 6:return null!==(t=""===e.pendingProps||3!==t.nodeType?null:t)&&(e.stateNode=t,!0);case 13:default:return!1}}function ra(e){if(ea){var t=Zo;if(t){var n=t;if(!na(e,t)){if(!(t=Sr(n.nextSibling))||!na(e,t))return e.effectTag|=2,ea=!1,void(Qo=e);ta(Qo,n)}Qo=e,Zo=Sr(t.firstChild)}else e.effectTag|=2,ea=!1,Qo=e}}function ia(e){for(e=e.return;null!==e&&5!==e.tag&&3!==e.tag&&18!==e.tag;)e=e.return;Qo=e}function oa(e){if(e!==Qo)return!1;if(!ea)return ia(e),ea=!0,!1;var t=e.type;if(5!==e.tag||"head"!==t&&"body"!==t&&!kr(t,e.memoizedProps))for(t=Zo;t;)ta(e,t),t=Sr(t.nextSibling);return ia(e),Zo=Qo?Sr(e.stateNode.nextSibling):null,!0}function aa(){Zo=Qo=null,ea=!1}var ua=Ke.ReactCurrentOwner,la=!1;function sa(e,t,n,r){t.child=null===e?Ji(t,null,n,r):Yi(t,e.child,n,r)}function ca(e,t,n,r,i){n=n.render;var o=t.ref;return _i(t,i),r=jo(e,t,n,r,o,i),null===e||la?(t.effectTag|=1,sa(e,t,r,i),t.child):(t.updateQueue=e.updateQueue,t.effectTag&=-517,e.expirationTime<=i&&(e.expirationTime=0),ka(e,t,i))}function fa(e,t,n,r,i,o){if(null===e){var a=n.type;return"function"!==typeof a||Qu(a)||void 0!==a.defaultProps||null!==n.compare||void 0!==n.defaultProps?((e=el(n.type,null,r,null,t.mode,o)).ref=t.ref,e.return=t,t.child=e):(t.tag=15,t.type=a,ha(e,t,a,r,i,o))}return a=e.child,it)&&ku.set(e,t))}}function Au(e,t){e.expirationTimei.firstPendingTime&&(i.firstPendingTime=t),0===(e=i.lastPendingTime)||t component higher in the tree to provide a loading indicator or placeholder to display."+ct(s))}uu!==nu&&(uu=Za),c=Aa(c,s),s=l;do{switch(s.tag){case 3:s.effectTag|=2048,s.expirationTime=f,Oi(s,f=Wa(s,c,f));break e;case 1:if(h=c,u=s.type,l=s.stateNode,0===(64&s.effectTag)&&("function"===typeof u.getDerivedStateFromError||null!==l&&"function"===typeof l.componentDidCatch&&(null===yu||!yu.has(l)))){s.effectTag|=2048,s.expirationTime=f,Oi(s,f=Ha(s,h,f));break e}}s=s.return}while(null!==s)}ou=zu(o)}if(ru=r,wi(),qa.current=i,null!==ou)return Uu.bind(null,e,t)}if(e.finishedWork=e.current.alternate,e.finishedExpirationTime=t,function(e,t){var n=e.firstBatch;return!!(null!==n&&n._defer&&n._expirationTime>=t)&&(ci(97,function(){return n._onComplete(),null}),!0)}(e,t))return null;switch(iu=null,uu){case Qa:throw a(Error(328));case Za:return(r=e.lastPendingTime)(n=(r=ai())-n)&&(n=0),(t=10*(1073741821-t)-r)<(n=(120>n?120:480>n?480:1080>n?1080:1920>n?1920:3e3>n?3e3:4320>n?4320:1960*Ka(n/1960))-n)&&(n=t)),10=(t=0|(i=cu).busyMinDurationMs)?t=0:(n=0|i.busyDelayMs,t=(r=ai()-(10*(1073741821-r)-(0|i.timeoutMs||5e3)))<=n?0:n+t-r),10<\/script>",f=c.removeChild(c.firstChild)):"string"===typeof n.is?f=f.createElement(c,{is:n.is}):(f=f.createElement(c),"select"===c&&(c=f,n.multiple?c.multiple=!0:n.size&&(c.size=n.size))):f=f.createElementNS(l,c),(c=f)[R]=s,c[D]=n,_a(n=c,t,!1,!1),s=n;var h=r,p=mr(u,o);switch(u){case"iframe":case"object":case"embed":Dn("load",s),r=o;break;case"video":case"audio":for(r=0;ro.tailExpiration&&1n&&(n=u),(s=o.childExpirationTime)>n&&(n=s),o=o.sibling;r.childExpirationTime=n}if(null!==t)return t;null!==e&&0===(1024&e.effectTag)&&(null===e.firstEffect&&(e.firstEffect=ou.firstEffect),null!==ou.lastEffect&&(null!==e.lastEffect&&(e.lastEffect.nextEffect=ou.firstEffect),e.lastEffect=ou.lastEffect),1i?o:i,e.firstPendingTime=i,iw&&(E=w,w=N,N=E),E=zn(S,N),k=zn(S,w),E&&k&&(1!==x.rangeCount||x.anchorNode!==E.node||x.anchorOffset!==E.offset||x.focusNode!==k.node||x.focusOffset!==k.offset)&&((I=I.createRange()).setStart(E.node,E.offset),x.removeAllRanges(),N>w?(x.addRange(I),x.extend(k.node,k.offset)):(I.setEnd(k.node,k.offset),x.addRange(I))))),I=[];for(x=S;x=x.parentNode;)1===x.nodeType&&I.push({element:x,left:x.scrollLeft,top:x.scrollTop});for("function"===typeof S.focus&&S.focus(),S=0;S=n?ba(e,t,n):(Cr(co,co.current&uo),null!==(t=ka(e,t,n))?t.sibling:null);Cr(co,co.current&uo);break;case 19:if(r=t.childExpirationTime>=n,0!==(64&e.effectTag)){if(r)return Ea(e,t,n);t.effectTag|=64}if(null!==(i=t.memoizedState)&&(i.rendering=null,i.tail=null),Cr(co,co.current),!r)return null}return ka(e,t,n)}}else la=!1;switch(t.expirationTime=0,t.tag){case 2:if(r=t.type,null!==e&&(e.alternate=null,t.alternate=null,t.effectTag|=2),e=t.pendingProps,i=Dr(t,Pr.current),_i(t,n),i=jo(null,t,r,e,i,n),t.effectTag|=1,"object"===typeof i&&null!==i&&"function"===typeof i.render&&void 0===i.$$typeof){if(t.tag=1,Uo(),Lr(r)){var o=!0;Vr(t)}else o=!1;t.memoizedState=null!==i.state&&void 0!==i.state?i.state:null;var u=r.getDerivedStateFromProps;"function"===typeof u&&Vi(t,r,u,e),i.updater=zi,t.stateNode=i,i._reactInternalFiber=t,Ki(t,r,e,n),t=ma(null,t,r,!0,o,n)}else t.tag=0,sa(null,t,i,n),t=t.child;return t;case 16:switch(i=t.elementType,null!==e&&(e.alternate=null,t.alternate=null,t.effectTag|=2),e=t.pendingProps,i=function(e){var t=e._result;switch(e._status){case 1:return t;case 2:case 0:throw t;default:switch(e._status=0,(t=(t=e._ctor)()).then(function(t){0===e._status&&(t=t.default,e._status=1,e._result=t)},function(t){0===e._status&&(e._status=2,e._result=t)}),e._status){case 1:return e._result;case 2:throw e._result}throw e._result=t,t}}(i),t.type=i,o=t.tag=function(e){if("function"===typeof e)return Qu(e)?1:0;if(void 0!==e&&null!==e){if((e=e.$$typeof)===nt)return 11;if(e===ot)return 14}return 2}(i),e=vi(i,e),o){case 0:t=pa(null,t,i,e,n);break;case 1:t=va(null,t,i,e,n);break;case 11:t=ca(null,t,i,e,n);break;case 14:t=fa(null,t,i,vi(i.type,e),r,n);break;default:throw a(Error(306),i,"")}return t;case 0:return r=t.type,i=t.pendingProps,pa(e,t,r,i=t.elementType===r?i:vi(r,i),n);case 1:return r=t.type,i=t.pendingProps,va(e,t,r,i=t.elementType===r?i:vi(r,i),n);case 3:if(ya(t),null===(r=t.updateQueue))throw a(Error(282));return i=null!==(i=t.memoizedState)?i.element:null,Li(t,r,t.pendingProps,null,n),(r=t.memoizedState.element)===i?(aa(),t=ka(e,t,n)):(i=t.stateNode,(i=(null===e||null===e.child)&&i.hydrate)&&(Zo=Sr(t.stateNode.containerInfo.firstChild),Qo=t,i=ea=!0),i?(t.effectTag|=2,t.child=Ji(t,null,r,n)):(sa(e,t,r,n),aa()),t=t.child),t;case 5:return oo(t),null===e&&ra(t),r=t.type,i=t.pendingProps,o=null!==e?e.memoizedProps:null,u=i.children,kr(r,i)?u=null:null!==o&&kr(r,o)&&(t.effectTag|=16),da(e,t),4&t.mode&&1!==n&&i.hidden?(t.expirationTime=t.childExpirationTime=1,t=null):(sa(e,t,u,n),t=t.child),t;case 6:return null===e&&ra(t),null;case 13:return ba(e,t,n);case 4:return ro(t,t.stateNode.containerInfo),r=t.pendingProps,null===e?t.child=Yi(t,null,r,n):sa(e,t,r,n),t.child;case 11:return r=t.type,i=t.pendingProps,ca(e,t,r,i=t.elementType===r?i:vi(r,i),n);case 7:return sa(e,t,t.pendingProps,n),t.child;case 8:case 12:return sa(e,t,t.pendingProps.children,n),t.child;case 10:e:{if(r=t.type._context,i=t.pendingProps,u=t.memoizedProps,Ei(t,o=i.value),null!==u){var l=u.value;if(0===(o=en(l,o)?0:0|("function"===typeof r._calculateChangedBits?r._calculateChangedBits(l,o):1073741823))){if(u.children===i.children&&!Or.current){t=ka(e,t,n);break e}}else for(null!==(l=t.child)&&(l.return=t);null!==l;){var s=l.dependencies;if(null!==s){u=l.child;for(var c=s.firstContext;null!==c;){if(c.context===r&&0!==(c.observedBits&o)){1===l.tag&&((c=Ci(n,null)).tag=2,Pi(l,c)),l.expirationTime=t;)n=r,r=r._next;e._next=r,null!==n&&(n._next=e)}return e},Oe=Du,Re=Lu,De=Ru,Le=function(e,t){var n=ru;ru|=2;try{return e(t)}finally{(ru=n)===Xa&&hi()}};var ml={createPortal:vl,findDOMNode:function(e){if(null==e)e=null;else if(1!==e.nodeType){var t=e._reactInternalFiber;if(void 0===t){if("function"===typeof e.render)throw a(Error(188));throw a(Error(268),Object.keys(e))}e=null===(e=un(t))?null:e.stateNode}return e},hydrate:function(e,t,n){if(!dl(t))throw a(Error(200));return pl(null,e,t,!0,n)},render:function(e,t,n){if(!dl(t))throw a(Error(200));return pl(null,e,t,!1,n)},unstable_renderSubtreeIntoContainer:function(e,t,n,r){if(!dl(n))throw a(Error(200));if(null==e||void 0===e._reactInternalFiber)throw a(Error(38));return pl(e,t,n,!1,r)},unmountComponentAtNode:function(e){if(!dl(e))throw a(Error(40));return!!e._reactRootContainer&&(Mu(function(){pl(null,null,e,!1,function(){e._reactRootContainer=null})}),!0)},unstable_createPortal:function(){return vl.apply(void 0,arguments)},unstable_batchedUpdates:Du,unstable_interactiveUpdates:function(e,t,n,r){return Ru(),Lu(e,t,n,r)},unstable_discreteUpdates:Lu,unstable_flushDiscreteUpdates:Ru,flushSync:function(e,t){if((ru&(Ya|Ja))!==Xa)throw a(Error(187));var n=ru;ru|=1;try{return si(99,e.bind(null,t))}finally{ru=n,hi()}},unstable_createRoot:function(e,t){if(!dl(e))throw a(Error(299),"unstable_createRoot");return new hl(e,null!=t&&!0===t.hydrate)},unstable_createSyncRoot:function(e,t){if(!dl(e))throw a(Error(299),"unstable_createRoot");return new fl(e,1,null!=t&&!0===t.hydrate)},unstable_flushControlled:function(e){var t=ru;ru|=1;try{si(99,e)}finally{(ru=t)===Xa&&hi()}},__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED:{Events:[M,j,U,A.injectEventPluginsByName,h,H,function(e){I(e,W)},Ae,Pe,Mn,C,Wu,{current:!1}]}};!function(e){var t=e.findFiberByHostInstance;(function(e){if("undefined"===typeof __REACT_DEVTOOLS_GLOBAL_HOOK__)return!1;var t=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(t.isDisabled||!t.supportsFiber)return!0;try{var n=t.inject(e);Xu=function(e){try{t.onCommitFiberRoot(n,e,void 0,64===(64&e.current.effectTag))}catch(r){}},$u=function(e){try{t.onCommitFiberUnmount(n,e)}catch(r){}}}catch(r){}})(i({},e,{overrideHookState:null,overrideProps:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:Ke.ReactCurrentDispatcher,findHostInstanceByFiber:function(e){return null===(e=un(e))?null:e.stateNode},findFiberByHostInstance:function(e){return t?t(e):null},findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null}))}({findFiberByHostInstance:L,bundleType:0,version:"16.9.0",rendererPackageName:"react-dom"});var yl={default:ml},gl=yl&&ml||yl;e.exports=gl.default||gl},function(e,t,n){"use strict";e.exports=n(18)},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=void 0,i=void 0,o=void 0,a=void 0,u=void 0;if(t.unstable_now=void 0,t.unstable_forceFrameRate=void 0,"undefined"===typeof window||"function"!==typeof MessageChannel){var l=null,s=null,c=function e(){if(null!==l)try{var n=t.unstable_now();l(!0,n),l=null}catch(r){throw setTimeout(e,0),r}};t.unstable_now=function(){return Date.now()},r=function(e){null!==l?setTimeout(r,0,e):(l=e,setTimeout(c,0))},i=function(e,t){s=setTimeout(e,t)},o=function(){clearTimeout(s)},a=function(){return!1},u=t.unstable_forceFrameRate=function(){}}else{var f=window.performance,h=window.Date,d=window.setTimeout,p=window.clearTimeout,v=window.requestAnimationFrame,m=window.cancelAnimationFrame;"undefined"!==typeof console&&("function"!==typeof v&&console.error("This browser doesn't support requestAnimationFrame. Make sure that you load a polyfill in older browsers. https://fb.me/react-polyfills"),"function"!==typeof m&&console.error("This browser doesn't support cancelAnimationFrame. Make sure that you load a polyfill in older browsers. https://fb.me/react-polyfills")),t.unstable_now="object"===typeof f&&"function"===typeof f.now?function(){return f.now()}:function(){return h.now()};var y=!1,g=null,b=-1,w=-1,E=33.33,k=-1,T=-1,_=0,S=!1;a=function(){return t.unstable_now()>=_},u=function(){},t.unstable_forceFrameRate=function(e){0>e||125(E=ru){if(a=l,null===A)A=e.next=e.previous=e;else{n=null;var s=A;do{if(a=0;--o){var a=this.tryEntries[o],u=a.completion;if("root"===a.tryLoc)return i("end");if(a.tryLoc<=this.prev){var l=r.call(a,"catchLoc"),s=r.call(a,"finallyLoc");if(l&&s){if(this.prev=0;--n){var i=this.tryEntries[n];if(i.tryLoc<=this.prev&&r.call(i,"finallyLoc")&&this.prev=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),I(n),p}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var r=n.completion;if("throw"===r.type){var i=r.arg;I(n)}return i}}throw new Error("illegal catch attempt")},delegateYield:function(e,n,r){return this.delegate={iterator:N(e),resultName:n,nextLoc:r},"next"===this.method&&(this.arg=t),p}},e}(e.exports);try{regeneratorRuntime=r}catch(i){Function("r","regeneratorRuntime = r")(r)}},function(e,t,n){"use strict";(function(e){Object.defineProperty(t,"__esModule",{value:!0});var r=n(6),i={NODE_CLIENT:!1,NODE_ADMIN:!1,SDK_VERSION:"${JSCORE_VERSION}"},o=function(e,t){if(!e)throw a(t)},a=function(e){return new Error("Firebase Database ("+i.SDK_VERSION+") INTERNAL ASSERT FAILED: "+e)},u=function(e){for(var t=[],n=0,r=0;r>6|192,t[n++]=63&i|128):55296===(64512&i)&&r+1>18|240,t[n++]=i>>12&63|128,t[n++]=i>>6&63|128,t[n++]=63&i|128):(t[n++]=i>>12|224,t[n++]=i>>6&63|128,t[n++]=63&i|128)}return t},l={byteToCharMap_:null,charToByteMap_:null,byteToCharMapWebSafe_:null,charToByteMapWebSafe_:null,ENCODED_VALS_BASE:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",get ENCODED_VALS(){return this.ENCODED_VALS_BASE+"+/="},get ENCODED_VALS_WEBSAFE(){return this.ENCODED_VALS_BASE+"-_."},HAS_NATIVE_SUPPORT:"function"===typeof atob,encodeByteArray:function(e,t){if(!Array.isArray(e))throw Error("encodeByteArray takes an array as a parameter");this.init_();for(var n=t?this.byteToCharMapWebSafe_:this.byteToCharMap_,r=[],i=0;i>2,f=(3&o)<<4|u>>4,h=(15&u)<<2|s>>6,d=63&s;l||(d=64,a||(h=64)),r.push(n[c],n[f],n[h],n[d])}return r.join("")},encodeString:function(e,t){return this.HAS_NATIVE_SUPPORT&&!t?btoa(e):this.encodeByteArray(u(e),t)},decodeString:function(e,t){return this.HAS_NATIVE_SUPPORT&&!t?atob(e):function(e){for(var t=[],n=0,r=0;n191&&i<224){var o=e[n++];t[r++]=String.fromCharCode((31&i)<<6|63&o)}else if(i>239&&i<365){var a=((7&i)<<18|(63&(o=e[n++]))<<12|(63&(u=e[n++]))<<6|63&e[n++])-65536;t[r++]=String.fromCharCode(55296+(a>>10)),t[r++]=String.fromCharCode(56320+(1023&a))}else{o=e[n++];var u=e[n++];t[r++]=String.fromCharCode((15&i)<<12|(63&o)<<6|63&u)}}return t.join("")}(this.decodeStringToByteArray(e,t))},decodeStringToByteArray:function(e,t){this.init_();for(var n=t?this.charToByteMapWebSafe_:this.charToByteMap_,r=[],i=0;i>4;if(r.push(s),64!==u){var c=a<<4&240|u>>2;if(r.push(c),64!==l){var f=u<<6&192|l;r.push(f)}}}return r},init_:function(){if(!this.byteToCharMap_){this.byteToCharMap_={},this.charToByteMap_={},this.byteToCharMapWebSafe_={},this.charToByteMapWebSafe_={};for(var e=0;e=this.ENCODED_VALS_BASE.length&&(this.charToByteMap_[this.ENCODED_VALS_WEBSAFE.charAt(e)]=e,this.charToByteMapWebSafe_[this.ENCODED_VALS.charAt(e)]=e)}}},s=function(e){try{return l.decodeString(e,!0)}catch(t){console.error("base64Decode failed: ",t)}return null};function c(e,t){if(!(t instanceof Object))return t;switch(t.constructor){case Date:return new Date(t.getTime());case Object:void 0===e&&(e={});break;case Array:e=[];break;default:return t}for(var n in t)t.hasOwnProperty(n)&&(e[n]=c(e[n],t[n]));return e}var f=function(){function e(){var e=this;this.reject=function(){},this.resolve=function(){},this.promise=new Promise(function(t,n){e.resolve=t,e.reject=n})}return e.prototype.wrapCallback=function(e){var t=this;return function(n,r){n?t.reject(n):t.resolve(r),"function"===typeof e&&(t.promise.catch(function(){}),1===e.length?e(n):e(n,r))}},e}();function h(){return"undefined"!==typeof navigator&&"string"===typeof navigator.userAgent?navigator.userAgent:""}var d="FirebaseError",p=function(e){function t(n,r){var i=e.call(this,r)||this;return i.code=n,i.name=d,Object.setPrototypeOf(i,t.prototype),Error.captureStackTrace&&Error.captureStackTrace(i,v.prototype.create),i}return r.__extends(t,e),t}(Error),v=function(){function e(e,t,n){this.service=e,this.serviceName=t,this.errors=n}return e.prototype.create=function(e){for(var t=[],n=1;n"})}var y=/\{\$([^}]+)}/g;function g(e){return JSON.parse(e)}var b=function(e){var t={},n={},r={},i="";try{var o=e.split(".");t=g(s(o[0])||""),n=g(s(o[1])||""),i=o[2],r=n.d||{},delete n.d}catch(a){}return{header:t,claims:n,data:r,signature:i}};var w=function(){function e(){this.chain_=[],this.buf_=[],this.W_=[],this.pad_=[],this.inbuf_=0,this.total_=0,this.blockSize=64,this.pad_[0]=128;for(var e=1;e>>31)}var o,a,u=this.chain_[0],l=this.chain_[1],s=this.chain_[2],c=this.chain_[3],f=this.chain_[4];for(r=0;r<80;r++){r<40?r<20?(o=c^l&(s^c),a=1518500249):(o=l^s^c,a=1859775393):r<60?(o=l&s|c&(l|s),a=2400959708):(o=l^s^c,a=3395469782);i=(u<<5|u>>>27)+o+f+a+n[r]&4294967295;f=c,c=s,s=4294967295&(l<<30|l>>>2),l=u,u=i}this.chain_[0]=this.chain_[0]+u&4294967295,this.chain_[1]=this.chain_[1]+l&4294967295,this.chain_[2]=this.chain_[2]+s&4294967295,this.chain_[3]=this.chain_[3]+c&4294967295,this.chain_[4]=this.chain_[4]+f&4294967295},e.prototype.update=function(e,t){if(null!=e){void 0===t&&(t=e.length);for(var n=t-this.blockSize,r=0,i=this.buf_,o=this.inbuf_;r=56;n--)this.buf_[n]=255&t,t/=256;this.compress_(this.buf_);var r=0;for(n=0;n<5;n++)for(var i=24;i>=0;i-=8)e[r]=this.chain_[n]>>i&255,++r;return e},e}();var E=function(){function e(e,t){var n=this;this.observers=[],this.unsubscribes=[],this.observerCount=0,this.task=Promise.resolve(),this.finalized=!1,this.onNoObservers=t,this.task.then(function(){e(n)}).catch(function(e){n.error(e)})}return e.prototype.next=function(e){this.forEachObserver(function(t){t.next(e)})},e.prototype.error=function(e){this.forEachObserver(function(t){t.error(e)}),this.close(e)},e.prototype.complete=function(){this.forEachObserver(function(e){e.complete()}),this.close()},e.prototype.subscribe=function(e,t,n){var r,i=this;if(void 0===e&&void 0===t&&void 0===n)throw new Error("Missing Observer.");void 0===(r=function(e,t){if("object"!==typeof e||null===e)return!1;for(var n=0,r=t;n 4. Need to update it?")}var i=e+" failed: ";return i+=r+" argument "}t.CONSTANTS=i,t.Deferred=f,t.ErrorFactory=v,t.FirebaseError=p,t.Sha1=w,t.assert=o,t.assertionError=a,t.async=function(e,t){return function(){for(var n=[],r=0;r=r&&n<=i},t.issuedAtTime=function(e){var t=b(e).claims;return"object"===typeof t&&t.hasOwnProperty("iat")?t.iat:null},t.jsonEval=g,t.map=function(e,t,n){var r={};for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&(r[i]=t.call(n,e[i],i,e));return r},t.querystring=function(e){for(var t=[],n=function(e,n){Array.isArray(n)?n.forEach(function(n){t.push(encodeURIComponent(e)+"="+encodeURIComponent(n))}):t.push(encodeURIComponent(e)+"="+encodeURIComponent(n))},r=0,i=Object.entries(e);r=55296&&r<=56319?(t+=4,n++):t+=3}return t},t.stringToByteArray=function(e){for(var t=[],n=0,r=0;r=55296&&i<=56319){var a=i-55296;o(++r>6|192,t[n++]=63&i|128):i<65536?(t[n++]=i>>12|224,t[n++]=i>>6&63|128,t[n++]=63&i|128):(t[n++]=i>>18|240,t[n++]=i>>12&63|128,t[n++]=i>>6&63|128,t[n++]=63&i|128)}return t},t.stringify=function(e){return JSON.stringify(e)},t.validateArgCount=function(e,t,n,r){var i;if(rn&&(i=0===n?"none":"no more than "+n),i)throw new Error(e+" failed: Was called with "+r+(1===r?" argument.":" arguments.")+" Expects "+i+".")},t.validateCallback=function(e,t,n,r){if((!r||n)&&"function"!==typeof n)throw new Error(T(e,t,r)+"must be a valid function.")},t.validateContextObject=function(e,t,n,r){if((!r||n)&&("object"!==typeof n||null===n))throw new Error(T(e,t,r)+"must be a valid context object.")},t.validateNamespace=function(e,t,n,r){if((!r||n)&&"string"!==typeof n)throw new Error(T(e,t,r)+"must be a valid firebase namespace.")}}).call(this,n(7))},function(e,t,n){"use strict";n.r(t),n.d(t,"LogLevel",function(){return r}),n.d(t,"Logger",function(){return u}),n.d(t,"setLogLevel",function(){return l});var r,i=[];!function(e){e[e.DEBUG=0]="DEBUG",e[e.VERBOSE=1]="VERBOSE",e[e.INFO=2]="INFO",e[e.WARN=3]="WARN",e[e.ERROR=4]="ERROR",e[e.SILENT=5]="SILENT"}(r||(r={}));var o=r.INFO,a=function(e,t){for(var n=[],i=2;i>>0),E=0;function k(e,t,n){return e.call.apply(e.bind,arguments)}function T(e,t,n){if(!e)throw Error();if(2e.b&&(e.b++,t.next=e.a,e.a=t)}function D(){this.b=this.a=null}x(C,Error),C.prototype.name="CustomError",x(A,C),A.prototype.name="AssertionError",O.prototype.get=function(){if(0"}else o=void 0===e?"undefined":null===e?"null":typeof e;P("Argument is not a %s (or a non-Element, non-Location mock); got: %s",t,o)}}D.prototype.add=function(e,t){var n=L.get();n.set(e,t),this.b?this.b.next=n:this.a=n,this.b=n},j.prototype.set=function(e,t){this.a=e,this.b=t,this.next=null},j.prototype.reset=function(){this.next=this.b=this.a=null};var F=Array.prototype.indexOf?function(e,t){return Array.prototype.indexOf.call(e,t,void 0)}:function(e,t){if(s(e))return s(t)&&1==t.length?e.indexOf(t,0):-1;for(var n=0;n/g,ve=/"/g,me=/'/g,ye=/\x00/g,ge=/[\x00&<>"']/;function be(e,t){return-1!=e.indexOf(t)}function we(e,t){return et?1:0}function Ee(){this.a="",this.b=Ie}function ke(e){return e instanceof Ee&&e.constructor===Ee&&e.b===Ie?e.a:(P("expected object of type SafeUrl, got '"+e+"' of type "+p(e)),"type_error:SafeUrl")}Ee.prototype.na=!0,Ee.prototype.ma=function(){return this.a.toString()},Ee.prototype.toString=function(){return"SafeUrl{"+this.a+"}"};var Te=/^(?:(?:https?|mailto|ftp):|[^:\/?#]*(?:[\/?#]|$))/i;function _e(e){return e instanceof Ee?e:(e="object"==typeof e&&e.na?e.ma():String(e),Te.test(e)||(e="about:invalid#zClosurez"),xe(e))}var Se,Ie={};function xe(e){var t=new Ee;return t.a=e,t}xe("about:blank");e:{var Ne=l.navigator;if(Ne){var Ce=Ne.userAgent;if(Ce){Se=Ce;break e}}Se=""}function Ae(e){return be(Se,e)}function Pe(){this.a="",this.b=Re}function Oe(e){return e instanceof Pe&&e.constructor===Pe&&e.b===Re?e.a:(P("expected object of type SafeHtml, got '"+e+"' of type "+p(e)),"type_error:SafeHtml")}Pe.prototype.na=!0,Pe.prototype.ma=function(){return this.a.toString()},Pe.prototype.toString=function(){return"SafeHtml{"+this.a+"}"};var Re={};function De(e){var t=new Pe;return t.a=e,t}De("");var Le,Me,je=De("");function Ue(e,t){for(var n=e.split("%s"),r="",i=Array.prototype.slice.call(arguments,1);i.length&&1")&&(e=e.replace(pe,">")),-1!=e.indexOf('"')&&(e=e.replace(ve,""")),-1!=e.indexOf("'")&&(e=e.replace(me,"'")),-1!=e.indexOf("\0")&&(e=e.replace(ye,""))),e}function Ve(e){l.setTimeout(function(){throw e},0)}function ze(){var e=l.MessageChannel;if("undefined"===typeof e&&"undefined"!==typeof window&&window.postMessage&&window.addEventListener&&!Ae("Presto")&&(e=function(){var e=document.createElement("IFRAME");e.style.display="none",function(e){var t=ce(ee(re));U(e,"HTMLIFrameElement"),e.src=oe(t).toString()}(e),document.documentElement.appendChild(e);var t=e.contentWindow;(e=t.document).open(),e.write(Oe(je)),e.close();var n="callImmediate"+Math.random(),r="file:"==t.location.protocol?"*":t.location.protocol+"//"+t.location.host;e=_(function(e){"*"!=r&&e.origin!=r||e.data!=n||this.port1.onmessage()},this),t.addEventListener("message",e,!1),this.port1={},this.port2={postMessage:function(){t.postMessage(n,r)}}}),"undefined"!==typeof e&&!Ae("Trident")&&!Ae("MSIE")){var t=new e,n={},r=n;return t.port1.onmessage=function(){if(void 0!==n.next){var e=(n=n.next).ub;n.ub=null,e()}},function(e){r.next={ub:e},r=r.next,t.port2.postMessage(0)}}return"undefined"!==typeof document&&"onreadystatechange"in document.createElement("SCRIPT")?function(e){var t=document.createElement("SCRIPT");t.onreadystatechange=function(){t.onreadystatechange=null,t.parentNode.removeChild(t),t=null,e(),e=null},document.documentElement.appendChild(t)}:function(e){l.setTimeout(e,0)}}function Be(e,t){Me||function(){if(l.Promise&&l.Promise.resolve){var e=l.Promise.resolve(void 0);Me=function(){e.then(Ke)}}else Me=function(){var e=Ke;!g(l.setImmediate)||l.Window&&l.Window.prototype&&!Ae("Edge")&&l.Window.prototype.setImmediate==l.setImmediate?(Le||(Le=ze()),Le(e)):l.setImmediate(e)}}(),We||(Me(),We=!0),He.add(e,t)}De("
");var We=!1,He=new D;function Ke(){for(var e;e=M();){try{e.a.call(e.b)}catch(t){Ve(t)}R(L,e)}We=!1}function qe(e,t){if(this.a=Ge,this.i=void 0,this.f=this.b=this.c=null,this.g=this.h=!1,e!=d)try{var n=this;e.call(t,function(e){ot(n,Xe,e)},function(e){if(!(e instanceof ht))try{if(e instanceof Error)throw e;throw Error("Promise rejected.")}catch(t){}ot(n,$e,e)})}catch(r){ot(this,$e,r)}}var Ge=0,Xe=2,$e=3;function Ye(){this.next=this.f=this.b=this.g=this.a=null,this.c=!1}Ye.prototype.reset=function(){this.f=this.b=this.g=this.a=null,this.c=!1};var Je=new O(function(){return new Ye},function(e){e.reset()});function Qe(e,t,n){var r=Je.get();return r.g=e,r.b=t,r.f=n,r}function Ze(e){if(e instanceof qe)return e;var t=new qe(d);return ot(t,Xe,e),t}function et(e){return new qe(function(t,n){n(e)})}function tt(e,t,n){at(e,t,n,null)||Be(S(t,e))}function nt(e){return new qe(function(t){var n=e.length,r=[];if(n)for(var i=function(e,i,o){n--,r[e]=i?{Cb:!0,value:o}:{Cb:!1,reason:o},0==n&&t(r)},o=0;oparseFloat(It)){gt=String(Nt);break e}}gt=It}var Ct,At={};function Pt(e){return function(e,t){var n=At;return Object.prototype.hasOwnProperty.call(n,e)?n[e]:n[e]=t(e)}(e,function(){for(var t=0,n=fe(String(gt)).split("."),r=fe(String(e)).split("."),i=Math.max(n.length,r.length),o=0;0==t&&o=e.keyCode)&&(e.keyCode=-1)}catch(t){}},jt.prototype.f=function(){return this.a};var Ft="closure_listenable_"+(1e6*Math.random()|0),Vt=0;function zt(e,t,n,r,i){this.listener=e,this.proxy=null,this.src=t,this.type=n,this.capture=!!r,this.La=i,this.key=++Vt,this.oa=this.Ga=!1}function Bt(e){e.oa=!0,e.listener=null,e.proxy=null,e.src=null,e.La=null}function Wt(e){this.src=e,this.a={},this.b=0}function Ht(e,t){var n=t.type;n in e.a&&H(e.a[n],t)&&(Bt(t),0==e.a[n].length&&(delete e.a[n],e.b--))}function Kt(e,t,n,r){for(var i=0;ir.keyCode||void 0!=r.returnValue)){e:{var i=!1;if(0==r.keyCode)try{r.keyCode=-1;break e}catch(a){i=!0}(i||void 0==r.returnValue)&&(r.returnValue=!0)}for(r=[],i=t.b;i;i=i.parentNode)r.push(i);for(e=e.type,i=r.length-1;0<=i;i--){t.b=r[i];var o=en(r[i],e,!0,t);n=n&&o}for(i=0;i>>0);function an(e){return g(e)?e:(e[on]||(e[on]=function(t){return e.handleEvent(t)}),e[on])}function un(){dt.call(this),this.m=new Wt(this),this.Nb=this,this.Ua=null}function ln(e,t,n,r,i){e.m.add(String(t),n,!1,r,i)}function sn(e,t,n,r,i){e.m.add(String(t),n,!0,r,i)}function cn(e,t,n,r){if(!(t=e.m.a[String(t)]))return!0;t=t.concat();for(var i=!0,o=0;ot)throw Error("Bad port number "+t);e.m=t}else e.m=null}function kn(e,t,n){t instanceof Ln?(e.a=t,function(e,t){t&&!e.f&&(Mn(e),e.c=null,e.a.forEach(function(e,t){var n=t.toLowerCase();t!=n&&(Un(this,t),Vn(this,n,e))},e)),e.f=t}(e.a,e.h)):(n||(t=Nn(t,Rn)),e.a=new Ln(t,e.h))}function Tn(e,t,n){e.a.set(t,n)}function _n(e,t){return e.a.get(t)}function Sn(e){return e instanceof bn?new bn(e):new bn(e,void 0)}function In(e,t){var n=new bn(null,void 0);return wn(n,"https"),e&&(n.b=e),t&&(n.c=t),n}function xn(e,t){return e?t?decodeURI(e.replace(/%25/g,"%2525")):decodeURIComponent(e):""}function Nn(e,t,n){return s(e)?(e=encodeURI(e).replace(t,Cn),n&&(e=e.replace(/%25([0-9a-fA-F]{2})/g,"%$1")),e):null}function Cn(e){return"%"+((e=e.charCodeAt(0))>>4&15).toString(16)+(15&e).toString(16)}bn.prototype.toString=function(){var e=[],t=this.f;t&&e.push(Nn(t,An,!0),":");var n=this.b;return(n||"file"==t)&&(e.push("//"),(t=this.i)&&e.push(Nn(t,An,!0),"@"),e.push(encodeURIComponent(String(n)).replace(/%25([0-9a-fA-F]{2})/g,"%$1")),null!=(n=this.m)&&e.push(":",String(n))),(n=this.c)&&(this.b&&"/"!=n.charAt(0)&&e.push("/"),e.push(Nn(n,"/"==n.charAt(0)?On:Pn,!0))),(n=this.a.toString())&&e.push("?",n),(n=this.g)&&e.push("#",Nn(n,Dn)),e.join("")},bn.prototype.resolve=function(e){var t=new bn(this),n=!!e.f;n?wn(t,e.f):n=!!e.i,n?t.i=e.i:n=!!e.b,n?t.b=e.b:n=null!=e.m;var r=e.c;if(n)En(t,e.m);else if(n=!!e.c){if("/"!=r.charAt(0))if(this.b&&!this.c)r="/"+r;else{var i=t.c.lastIndexOf("/");-1!=i&&(r=t.c.substr(0,i+1)+r)}if(".."==(i=r)||"."==i)r="";else if(be(i,"./")||be(i,"/.")){r=0==i.lastIndexOf("/",0),i=i.split("/");for(var o=[],a=0;a2*e.c&&mn(e)))}function Fn(e,t){return Mn(e),t=Bn(e,t),yn(e.a.b,t)}function Vn(e,t,n){Un(e,t),0"),o=o.join("")}return o=i.createElement(o),a&&(s(a)?o.className=a:m(a)?o.className=a.join(" "):Kn(o,a)),2'),a.document.write(Oe(e)),a.document.close())):(a=r.open(ke(t).toString(),n,a))&&e.noopener&&(a.opener=null),a)try{a.focus()}catch(u){}return a}var ar=/^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/,ur=/^[^@]+@[^@]+$/;function lr(){var e=null;return new qe(function(t){"complete"==l.document.readyState?t():(e=function(){t()},Yt(window,"load",e))}).s(function(t){throw Jt(window,"load",e),t})}function sr(e){return e=e||br(),!("file:"!==_r()||!e.toLowerCase().match(/iphone|ipad|ipod|android/))}function cr(){var e=l.window;try{return!(!e||e==e.top)}catch(t){return!1}}function fr(){return"undefined"!==typeof l.WorkerGlobalScope&&"function"===typeof l.importScripts}function hr(){return r.a.INTERNAL.hasOwnProperty("reactNative")?"ReactNative":r.a.INTERNAL.hasOwnProperty("node")?"Node":fr()?"Worker":"Browser"}function dr(){var e=hr();return"ReactNative"===e||"Node"===e}var pr="Firefox",vr="Chrome";function mr(e){var t=e.toLowerCase();return be(t,"opera/")||be(t,"opr/")||be(t,"opios/")?"Opera":be(t,"iemobile")?"IEMobile":be(t,"msie")||be(t,"trident/")?"IE":be(t,"edge/")?"Edge":be(t,"firefox/")?pr:be(t,"silk/")?"Silk":be(t,"blackberry")?"Blackberry":be(t,"webos")?"Webos":!be(t,"safari/")||be(t,"chrome/")||be(t,"crios/")||be(t,"android")?!be(t,"chrome/")&&!be(t,"crios/")||be(t,"edge/")?be(t,"android")?"Android":(e=e.match(/([a-zA-Z\d\.]+)\/[a-zA-Z\d\.]*$/))&&2==e.length?e[1]:"Other":vr:"Safari"}var yr={Qc:"FirebaseCore-web",Sc:"FirebaseUI-web"};function gr(e,t){t=t||[];var n,r=[],i={};for(n in yr)i[yr[n]]=!0;for(n=0;nt)throw Error("Short delay should be less than long delay!");this.a=e,this.c=t,e=br(),t=hr(),this.b=rr(e)||"ReactNative"===t}function Rr(){var e=l.document;return!e||"undefined"===typeof e.visibilityState||"visible"==e.visibilityState}function Dr(e){try{var t=new Date(parseInt(e,10));if(!isNaN(t.getTime())&&!/[^0-9]/.test(e))return t.toUTCString()}catch(n){}return null}function Lr(){return!(!wr("fireauth.oauthhelper",l)&&!wr("fireauth.iframe",l))}Or.prototype.get=function(){var e=l.navigator;return!e||"boolean"!==typeof e.onLine||!Tr()&&"chrome-extension:"!==_r()&&"undefined"===typeof e.connection||e.onLine?this.b?this.c:this.a:Math.min(5e3,this.a)};var Mr,jr={};function Ur(e){jr[e]||(jr[e]=!0,"undefined"!==typeof console&&"function"===typeof console.warn&&console.warn(e))}try{var Fr={};Object.defineProperty(Fr,"abcd",{configurable:!0,enumerable:!0,value:1}),Object.defineProperty(Fr,"abcd",{configurable:!0,enumerable:!0,value:2}),Mr=2==Fr.abcd}catch(Uo){Mr=!1}function Vr(e,t,n){Mr?Object.defineProperty(e,t,{configurable:!0,enumerable:!0,value:n}):e[t]=n}function zr(e,t){if(t)for(var n in t)t.hasOwnProperty(n)&&Vr(e,n,t[n])}function Br(e){var t={};return zr(t,e),t}function Wr(e){var t=e;if("object"==typeof e&&null!=e)for(var n in t="length"in e?[]:{},e)Vr(t,n,Wr(e[n]));return t}function Hr(e){var t={},n=e[qr],r=e[Gr];if(!(e=e[Xr])||e!=Kr&&!n)throw Error("Invalid provider user info!");t[Yr]=r||null,t[$r]=n||null,Vr(this,Qr,e),Vr(this,Jr,Wr(t))}var Kr="EMAIL_SIGNIN",qr="email",Gr="newEmail",Xr="requestType",$r="email",Yr="fromEmail",Jr="data",Qr="operation";function Zr(e,t){this.code=ti+e,this.message=t||ni[e]||""}function ei(e){var t=e&&e.code;return t?new Zr(t.substring(ti.length),e.message):null}x(Zr,Error),Zr.prototype.A=function(){return{code:this.code,message:this.message}},Zr.prototype.toJSON=function(){return this.A()};var ti="auth/",ni={"admin-restricted-operation":"This operation is restricted to administrators only.","argument-error":"","app-not-authorized":"This app, identified by the domain where it's hosted, is not authorized to use Firebase Authentication with the provided API key. Review your key configuration in the Google API console.","app-not-installed":"The requested mobile application corresponding to the identifier (Android package name or iOS bundle ID) provided is not installed on this device.","captcha-check-failed":"The reCAPTCHA response token provided is either invalid, expired, already used or the domain associated with it does not match the list of whitelisted domains.","code-expired":"The SMS code has expired. Please re-send the verification code to try again.","cordova-not-ready":"Cordova framework is not ready.","cors-unsupported":"This browser is not supported.","credential-already-in-use":"This credential is already associated with a different user account.","custom-token-mismatch":"The custom token corresponds to a different audience.","requires-recent-login":"This operation is sensitive and requires recent authentication. Log in again before retrying this request.","dynamic-link-not-activated":"Please activate Dynamic Links in the Firebase Console and agree to the terms and conditions.","email-already-in-use":"The email address is already in use by another account.","expired-action-code":"The action code has expired. ","cancelled-popup-request":"This operation has been cancelled due to another conflicting popup being opened.","internal-error":"An internal error has occurred.","invalid-app-credential":"The phone verification request contains an invalid application verifier. The reCAPTCHA token response is either invalid or expired.","invalid-app-id":"The mobile app identifier is not registed for the current project.","invalid-user-token":"This user's credential isn't valid for this project. This can happen if the user's token has been tampered with, or if the user isn't for the project associated with this API key.","invalid-auth-event":"An internal error has occurred.","invalid-verification-code":"The SMS verification code used to create the phone auth credential is invalid. Please resend the verification code sms and be sure use the verification code provided by the user.","invalid-continue-uri":"The continue URL provided in the request is invalid.","invalid-cordova-configuration":"The following Cordova plugins must be installed to enable OAuth sign-in: cordova-plugin-buildinfo, cordova-universal-links-plugin, cordova-plugin-browsertab, cordova-plugin-inappbrowser and cordova-plugin-customurlscheme.","invalid-custom-token":"The custom token format is incorrect. Please check the documentation.","invalid-dynamic-link-domain":"The provided dynamic link domain is not configured or authorized for the current project.","invalid-email":"The email address is badly formatted.","invalid-api-key":"Your API key is invalid, please check you have copied it correctly.","invalid-cert-hash":"The SHA-1 certificate hash provided is invalid.","invalid-credential":"The supplied auth credential is malformed or has expired.","invalid-message-payload":"The email template corresponding to this action contains invalid characters in its message. Please fix by going to the Auth email templates section in the Firebase Console.","invalid-oauth-provider":"EmailAuthProvider is not supported for this operation. This operation only supports OAuth providers.","invalid-oauth-client-id":"The OAuth client ID provided is either invalid or does not match the specified API key.","unauthorized-domain":"This domain is not authorized for OAuth operations for your Firebase project. Edit the list of authorized domains from the Firebase console.","invalid-action-code":"The action code is invalid. This can happen if the code is malformed, expired, or has already been used.","wrong-password":"The password is invalid or the user does not have a password.","invalid-persistence-type":"The specified persistence type is invalid. It can only be local, session or none.","invalid-phone-number":"The format of the phone number provided is incorrect. Please enter the phone number in a format that can be parsed into E.164 format. E.164 phone numbers are written in the format [+][country code][subscriber number including area code].","invalid-provider-id":"The specified provider ID is invalid.","invalid-recipient-email":"The email corresponding to this action failed to send as the provided recipient email address is invalid.","invalid-sender":"The email template corresponding to this action contains an invalid sender email or name. Please fix by going to the Auth email templates section in the Firebase Console.","invalid-verification-id":"The verification ID used to create the phone auth credential is invalid.","missing-android-pkg-name":"An Android Package Name must be provided if the Android App is required to be installed.","auth-domain-config-required":"Be sure to include authDomain when calling firebase.initializeApp(), by following the instructions in the Firebase console.","missing-app-credential":"The phone verification request is missing an application verifier assertion. A reCAPTCHA response token needs to be provided.","missing-verification-code":"The phone auth credential was created with an empty SMS verification code.","missing-continue-uri":"A continue URL must be provided in the request.","missing-iframe-start":"An internal error has occurred.","missing-ios-bundle-id":"An iOS Bundle ID must be provided if an App Store ID is provided.","missing-or-invalid-nonce":"The OIDC ID token requires a valid unhashed nonce.","missing-phone-number":"To send verification codes, provide a phone number for the recipient.","missing-verification-id":"The phone auth credential was created with an empty verification ID.","app-deleted":"This instance of FirebaseApp has been deleted.","account-exists-with-different-credential":"An account already exists with the same email address but different sign-in credentials. Sign in using a provider associated with this email address.","network-request-failed":"A network error (such as timeout, interrupted connection or unreachable host) has occurred.","no-auth-event":"An internal error has occurred.","no-such-provider":"User was not linked to an account with the given provider.","null-user":"A null user object was provided as the argument for an operation which requires a non-null user object.","operation-not-allowed":"The given sign-in provider is disabled for this Firebase project. Enable it in the Firebase console, under the sign-in method tab of the Auth section.","operation-not-supported-in-this-environment":'This operation is not supported in the environment this application is running on. "location.protocol" must be http, https or chrome-extension and web storage must be enabled.',"popup-blocked":"Unable to establish a connection with the popup. It may have been blocked by the browser.","popup-closed-by-user":"The popup has been closed by the user before finalizing the operation.","provider-already-linked":"User can only be linked to one identity for the given provider.","quota-exceeded":"The project's quota for this operation has been exceeded.","redirect-cancelled-by-user":"The redirect operation has been cancelled by the user before finalizing.","redirect-operation-pending":"A redirect sign-in operation is already pending.","rejected-credential":"The request contains malformed or mismatching credentials.",timeout:"The operation has timed out.","user-token-expired":"The user's credential is no longer valid. The user must sign in again.","too-many-requests":"We have blocked all requests from this device due to unusual activity. Try again later.","unauthorized-continue-uri":"The domain of the continue URL is not whitelisted. Please whitelist the domain in the Firebase console.","unsupported-persistence-type":"The current environment does not support the specified persistence type.","user-cancelled":"User did not grant your application the permissions it requested.","user-not-found":"There is no user record corresponding to this identifier. The user may have been deleted.","user-disabled":"The user account has been disabled by an administrator.","user-mismatch":"The supplied credentials do not correspond to the previously signed in user.","user-signed-out":"","weak-password":"The password must be 6 characters long or more.","web-storage-unsupported":"This browser is not supported or 3rd party cookies and data may be disabled."};function ri(e){var t=e[li];if("undefined"===typeof t)throw new Zr("missing-continue-uri");if("string"!==typeof t||"string"===typeof t&&!t.length)throw new Zr("invalid-continue-uri");this.h=t,this.b=this.a=null,this.g=!1;var n=e[ii];if(n&&"object"===typeof n){t=n[fi];var r=n[si];if(n=n[ci],"string"===typeof t&&t.length){if(this.a=t,"undefined"!==typeof r&&"boolean"!==typeof r)throw new Zr("argument-error",si+" property must be a boolean when specified.");if(this.g=!!r,"undefined"!==typeof n&&("string"!==typeof n||"string"===typeof n&&!n.length))throw new Zr("argument-error",ci+" property must be a non empty string when specified.");this.b=n||null}else{if("undefined"!==typeof t)throw new Zr("argument-error",fi+" property must be a non empty string when specified.");if("undefined"!==typeof r||"undefined"!==typeof n)throw new Zr("missing-android-pkg-name")}}else if("undefined"!==typeof n)throw new Zr("argument-error",ii+" property must be a non null object when specified.");if(this.f=null,(t=e[ui])&&"object"===typeof t){if("string"===typeof(t=t[hi])&&t.length)this.f=t;else if("undefined"!==typeof t)throw new Zr("argument-error",hi+" property must be a non empty string when specified.")}else if("undefined"!==typeof t)throw new Zr("argument-error",ui+" property must be a non null object when specified.");if("undefined"!==typeof(t=e[ai])&&"boolean"!==typeof t)throw new Zr("argument-error",ai+" property must be a boolean when specified.");if(this.c=!!t,"undefined"!==typeof(e=e[oi])&&("string"!==typeof e||"string"===typeof e&&!e.length))throw new Zr("argument-error",oi+" property must be a non empty string when specified.");this.i=e||null}var ii="android",oi="dynamicLinkDomain",ai="handleCodeInApp",ui="iOS",li="url",si="installApp",ci="minimumVersion",fi="packageName",hi="bundleId";function di(e){var t={};for(var n in t.continueUrl=e.h,t.canHandleCodeInApp=e.c,(t.androidPackageName=e.a)&&(t.androidMinimumVersion=e.b,t.androidInstallApp=e.g),t.iOSBundleId=e.f,t.dynamicLinkDomain=e.i,t)null===t[n]&&delete t[n];return t}var pi=null,vi=null;function mi(e){var t="";return function(e,t){function n(t){for(;re;e++)pi[e]="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".charAt(e),vi[pi[e]]=e,62<=e&&(vi["ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_.".charAt(e)]=e)}}();for(var r=0;;){var i=n(-1),o=n(0),a=n(64),u=n(64);if(64===u&&-1===i)break;t(i<<2|o>>4),64!=a&&(t(o<<4&240|a>>2),64!=u&&t(a<<6&192|u))}}(e,function(e){t+=String.fromCharCode(e)}),t}function yi(e){this.c=e.sub,I(),this.a=e.provider_id||e.firebase&&e.firebase.sign_in_provider||null,this.b=!!e.is_anonymous||"anonymous"==this.a}function gi(e){return(e=bi(e))&&e.sub&&e.iss&&e.aud&&e.exp?new yi(e):null}function bi(e){if(!e)return null;if(3!=(e=e.split(".")).length)return null;for(var t=(4-(e=e[1]).length%4)%4,n=0;n Auth section -> Sign in method tab.",e):"http"==r||"https"==r?n=Ue("This domain (%s) is not authorized to run this operation. Add it to the OAuth redirect domains list in the Firebase console -> Auth section -> Sign in method tab.",e):t="operation-not-supported-in-this-environment",Zr.call(this,t,n)}function ko(e,t,n){Zr.call(this,e,n),(e=t||{}).wb&&Vr(this,"email",e.wb),e.$&&Vr(this,"phoneNumber",e.$),e.credential&&Vr(this,"credential",e.credential)}function To(e){if(e.code){var t=e.code||"";0==t.indexOf(ti)&&(t=t.substring(ti.length));var n={credential:po(e)};if(e.email)n.wb=e.email;else if(e.phoneNumber)n.$=e.phoneNumber;else if(!n.credential)return new Zr(t,e.message||void 0);return new ko(t,n,e.message)}return null}function _o(){}function So(e){return e.c||(e.c=e.b())}function Io(){}function xo(e){if(!e.f&&"undefined"==typeof XMLHttpRequest&&"undefined"!=typeof ActiveXObject){for(var t=["MSXML2.XMLHTTP.6.0","MSXML2.XMLHTTP.3.0","MSXML2.XMLHTTP","Microsoft.XMLHTTP"],n=0;n=function e(t){return t.c?t.c:t.a?e(t.a):(P("Root logger has no level set."),null)}(this).value)for(g(t)&&(t=t()),e=new Po(e,String(t),this.f),n&&(e.a=n),n=this;n;)n=n.a};var Uo,Fo={},Vo=null;function zo(e){var t;if(Vo||(Vo=new Oo(""),Fo[""]=Vo,Vo.c=Mo),!(t=Fo[e])){t=new Oo(e);var n=e.lastIndexOf("."),r=e.substr(n+1);(n=zo(e.substr(0,n))).b||(n.b={}),n.b[r]=t,t.a=n,Fo[e]=t}return t}function Bo(e,t){e&&e.log(jo,t,void 0)}function Wo(e){this.f=e}function Ho(e){un.call(this),this.u=e,this.readyState=Ko,this.status=0,this.responseType=this.responseText=this.response=this.statusText="",this.onreadystatechange=null,this.i=new Headers,this.b=null,this.o="GET",this.g="",this.a=!1,this.h=zo("goog.net.FetchXmlHttp"),this.l=this.c=this.f=null}x(Wo,_o),Wo.prototype.a=function(){return new Ho(this.f)},Wo.prototype.b=(Uo={},function(){return Uo}),x(Ho,un);var Ko=0;function qo(e){e.c.read().then(e.$b.bind(e)).catch(e.Ka.bind(e))}function Go(e,t){t&&e.f&&(e.status=e.f.status,e.statusText=e.f.statusText),e.readyState=4,e.f=null,e.c=null,e.l=null,Xo(e)}function Xo(e){e.onreadystatechange&&e.onreadystatechange.call(e)}function $o(e){un.call(this),this.headers=new vn,this.B=e||null,this.c=!1,this.w=this.a=null,this.h=this.N=this.l="",this.f=this.I=this.i=this.G=!1,this.g=0,this.u=null,this.o=Yo,this.v=this.O=!1}(t=Ho.prototype).open=function(e,t){if(this.readyState!=Ko)throw this.abort(),Error("Error reopening a connection");this.o=e,this.g=t,this.readyState=1,Xo(this)},t.send=function(e){if(1!=this.readyState)throw this.abort(),Error("need to call open() first. ");this.a=!0;var t={headers:this.i,method:this.o,credentials:void 0,cache:void 0};e&&(t.body=e),this.u.fetch(new Request(this.g,t)).then(this.ec.bind(this),this.Ka.bind(this))},t.abort=function(){this.response=this.responseText="",this.i=new Headers,this.status=0,this.c&&this.c.cancel("Request was aborted."),1<=this.readyState&&this.a&&4!=this.readyState&&(this.a=!1,Go(this,!1)),this.readyState=Ko},t.ec=function(e){this.a&&(this.f=e,this.b||(this.b=e.headers,this.readyState=2,Xo(this)),this.a&&(this.readyState=3,Xo(this),this.a&&("arraybuffer"===this.responseType?e.arrayBuffer().then(this.cc.bind(this),this.Ka.bind(this)):"undefined"!==typeof l.ReadableStream&&"body"in e?(this.response=this.responseText="",this.c=e.body.getReader(),this.l=new TextDecoder,qo(this)):e.text().then(this.dc.bind(this),this.Ka.bind(this)))))},t.$b=function(e){if(this.a){var t=this.l.decode(e.value?e.value:new Uint8Array(0),{stream:!e.done});t&&(this.response=this.responseText+=t),e.done?Go(this,!0):Xo(this),3==this.readyState&&qo(this)}},t.dc=function(e){this.a&&(this.response=this.responseText=e,Go(this,!0))},t.cc=function(e){this.a&&(this.response=e,Go(this,!0))},t.Ka=function(e){var t=this.h;t&&t.log(Lo,"Failed to fetch url "+this.g,e instanceof Error?e:Error(e)),this.a&&Go(this,!0)},t.setRequestHeader=function(e,t){this.i.append(e,t)},t.getResponseHeader=function(e){return this.b?this.b.get(e.toLowerCase())||"":((e=this.h)&&e.log(Lo,"Attempting to get response header but no headers have been received for url: "+this.g,void 0),"")},t.getAllResponseHeaders=function(){if(!this.b){var e=this.h;return e&&e.log(Lo,"Attempting to get all response headers but no headers have been received for url: "+this.g,void 0),""}e=[];for(var t=this.b.entries(),n=t.next();!n.done;)n=n.value,e.push(n[0]+": "+n[1]),n=t.next();return e.join("\r\n")},x($o,un);var Yo="";$o.prototype.b=zo("goog.net.XhrIo");var Jo=/^https?$/i,Qo=["POST","PUT"];function Zo(e,t,n,r,i){if(e.a)throw Error("[goog.net.XhrIo] Object is active with another request="+e.l+"; newUri="+t);n=n?n.toUpperCase():"GET",e.l=t,e.h="",e.N=n,e.G=!1,e.c=!0,e.a=e.B?e.B.a():bo.a(),e.w=e.B?So(e.B):So(bo),e.a.onreadystatechange=_(e.Hb,e);try{Bo(e.b,la(e,"Opening Xhr")),e.I=!0,e.a.open(n,String(t),!0),e.I=!1}catch(a){return Bo(e.b,la(e,"Error opening Xhr: "+a.message)),void ta(e,a)}t=r||"";var o=new vn(e.headers);i&&function(e,t){if(e.forEach&&"function"==typeof e.forEach)e.forEach(t,void 0);else if(y(e)||s(e))V(e,t,void 0);else for(var n=pn(e),r=dn(e),i=r.length,o=0;ot?null:s(e)?e.charAt(t):e[t]}(o.U()),r=l.FormData&&t instanceof l.FormData,!W(Qo,n)||i||r||o.set("Content-Type","application/x-www-form-urlencoded;charset=utf-8"),o.forEach(function(e,t){this.a.setRequestHeader(t,e)},e),e.o&&(e.a.responseType=e.o),"withCredentials"in e.a&&e.a.withCredentials!==e.O&&(e.a.withCredentials=e.O);try{oa(e),0=t.m&&t.cancel())}this.v?this.v.call(this.u,this):this.l=!0,this.a||(e=new ma(this),fa(this),ca(this,!1,e))}},sa.prototype.o=function(e,t){this.i=!1,ca(this,e,t)},sa.prototype.then=function(e,t,n){var r,i,o=new qe(function(e,t){r=e,i=t});return ha(this,r,function(e){e instanceof ma?o.cancel():i(e)}),o.then(e,t,n)},sa.prototype.$goog_Thenable=!0,x(va,C),va.prototype.message="Deferred has already fired",va.prototype.name="AlreadyCalledError",x(ma,C),ma.prototype.message="Deferred was canceled",ma.prototype.name="CanceledError",ya.prototype.c=function(){throw delete ga[this.a],this.b};var ga={};function ba(e){var t={},n=t.document||document,r=oe(e).toString(),i=document.createElement("SCRIPT"),o={Jb:i,Ea:void 0},a=new sa(o),u=null,s=null!=t.timeout?t.timeout:5e3;return 0e)&&(!wt||!Ct||9t;t++){i=0|n[t-15],r=0|n[t-2];var o=(0|n[t-16])+((i>>>7|i<<25)^(i>>>18|i<<14)^i>>>3)|0,a=(0|n[t-7])+((r>>>17|r<<15)^(r>>>19|r<<13)^r>>>10)|0;n[t]=o+a|0}r=0|e.a[0],i=0|e.a[1];var u=0|e.a[2],l=0|e.a[3],s=0|e.a[4],c=0|e.a[5],f=0|e.a[6];for(o=0|e.a[7],t=0;64>t;t++){var h=((r>>>2|r<<30)^(r>>>13|r<<19)^(r>>>22|r<<10))+(r&i^r&u^i&u)|0;a=(o=o+((s>>>6|s<<26)^(s>>>11|s<<21)^(s>>>25|s<<7))|0)+((a=(a=s&c^~s&f)+(0|Il[t])|0)+(0|n[t])|0)|0,o=f,f=c,c=s,s=l+a|0,l=u,u=i,i=r,r=a+h|0}e.a[0]=e.a[0]+r|0,e.a[1]=e.a[1]+i|0,e.a[2]=e.a[2]+u|0,e.a[3]=e.a[3]+l|0,e.a[4]=e.a[4]+s|0,e.a[5]=e.a[5]+c|0,e.a[6]=e.a[6]+f|0,e.a[7]=e.a[7]+o|0}function Ml(e,t,n){void 0===n&&(n=t.length);var r=0,i=e.c;if(s(t))for(;r=o&&o==(0|o)))throw Error("message must be a byte array");e.f[i++]=o,i==e.b&&(Ll(e),i=0)}}e.c=i,e.g+=n}Cl.prototype.reset=function(){this.g=this.c=0,this.a=l.Int32Array?new Int32Array(this.h):G(this.h)};var jl=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298];function Ul(){Cl.call(this,8,Fl)}x(Ul,Cl);var Fl=[1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225];function Vl(e,t,n,r,i){this.l=e,this.i=t,this.m=n,this.o=r||null,this.u=i||null,this.h=t+":"+n,this.v=new Nl,this.g=new Sl(this.h),this.f=null,this.b=[],this.a=this.c=null}function zl(e){return new Zr("invalid-cordova-configuration",e)}function Bl(e){var t=new Ul;Ml(t,e),e=[];var n=8*t.g;56>t.c?Ml(t,Dl,56-t.c):Ml(t,Dl,t.b-(t.c-56));for(var r=63;56<=r;r--)t.f[r]=255&n,n/=256;for(Ll(t),r=n=0;r>i&255;return function(e){return z(e,function(e){return 1<(e=e.toString(16)).length?e:"0"+e}).join("")}(e)}function Wl(e,t){for(var n=0;ne.f&&(e.a=e.f),t)}(t,n)).then(function(){return function(){var e=l.document,t=null;return Rr()||!e?Ze():new qe(function(n){t=function(){Rr()&&(e.removeEventListener("visibilitychange",t,!1),n())},e.addEventListener("visibilitychange",t,!1)}).s(function(n){throw e.removeEventListener("visibilitychange",t,!1),n})}()}).then(function(){return t.h()}).then(function(){e(t,!0)}).s(function(n){t.i(n)&&e(t,!1)})}(this,!0)},bs.prototype.stop=function(){this.b&&(this.b.cancel(),this.b=null)},ws.prototype.A=function(){return{apiKey:this.f.b,refreshToken:this.a,accessToken:this.b,expirationTime:this.c}},ws.prototype.getToken=function(e){return e=!!e,this.b&&!this.a?et(new Zr("user-token-expired")):e||!this.b||I()>this.c-3e4?this.a?Ts(this,{grant_type:"refresh_token",refresh_token:this.a}):Ze(null):Ze({accessToken:this.b,expirationTime:this.c,refreshToken:this.a})},_s.prototype.A=function(){return{lastLoginAt:this.b,createdAt:this.a}},x(Is,Mt),x(xs,un),xs.prototype.pa=function(e){this.ja=e,Ra(this.a,e)},xs.prototype.ea=function(){return this.ja},xs.prototype.ya=function(){return G(this.O)},xs.prototype.Fa=function(){this.w.b&&(this.w.stop(),this.w.start())},Vr(xs.prototype,"providerId","firebase"),(t=xs.prototype).reload=function(){var e=this;return Zs(this,Fs(this).then(function(){return Ks(e).then(function(){return Ls(e)}).then(Us)}))},t.Zb=function(e){return this.F(e).then(function(e){return new gs(e)})},t.F=function(e){var t=this;return Zs(this,Fs(this).then(function(){return t.c.getToken(e)}).then(function(e){if(!e)throw new Zr("internal-error");return e.accessToken!=t.ra&&(Ds(t,e.accessToken),t.dispatchEvent(new Is("tokenChanged"))),Ws(t,"refreshToken",e.refreshToken),e.accessToken}))},t.uc=function(e){if(!(e=e.users)||!e.length)throw new Zr("internal-error");js(this,{uid:(e=e[0]).localId,displayName:e.displayName,photoURL:e.photoUrl,email:e.email,emailVerified:!!e.emailVerified,phoneNumber:e.phoneNumber,lastLoginAt:e.lastLoginAt,createdAt:e.createdAt});for(var t=function(e){return(e=e.providerUserInfo)&&e.length?z(e,function(e){return new Ss(e.rawId,e.providerId,e.email,e.displayName,e.photoUrl,e.phoneNumber)}):[]}(e),n=0;nthis.u&&(this.u=0),0==this.u&&Ec(this)&&Rs(Ec(this)),this.removeAuthTokenListener(e)},t.addAuthTokenListener=function(e){var t=this;this.o.push(e),_c(this,this.i.then(function(){t.l||W(t.o,e)&&e(kc(t))}))},t.removeAuthTokenListener=function(e){K(this.o,function(t){return t==e})},t.delete=function(){this.l=!0;for(var e=0;ei||i>=Xc.length)throw new Zr("internal-error","Argument validator received an unsupported number of arguments.");n=Xc[i],r=(r?"":n+" argument ")+(t.name?'"'+t.name+'" ':"")+"must be "+t.K+".";break e}r=null}}if(r)throw new Zr("argument-error",e+" failed: "+r)}(t=Uc.prototype).za=function(){var e=this;return this.f?this.f:this.f=Hc(this,Ze().then(function(){if(Tr()&&!fr())return lr();throw new Zr("operation-not-supported-in-this-environment","RecaptchaVerifier is only supported in a browser HTTP/HTTPS environment.")}).then(function(){return e.o.g(e.v())}).then(function(t){return e.g=t,Tu(e.u,su,{})}).then(function(t){e.a[zc]=t.recaptchaSiteKey}).s(function(t){throw e.f=null,t}))},t.render=function(){Kc(this);var e=this;return Hc(this,this.za().then(function(){if(null===e.c){var t=e.l;if(!e.i){var n=Hn(t);t=Gn("DIV"),n.appendChild(t)}e.c=e.g.render(t,e.a)}return e.c}))},t.verify=function(){Kc(this);var e=this;return Hc(this,this.render().then(function(t){return new qe(function(n){var r=e.g.getResponse(t);if(r)n(r);else{e.m.push(function t(r){r&&(function(e,t){K(e.m,function(e){return e==t})}(e,t),n(r))}),e.i&&e.g.execute(e.c)}})}))},t.reset=function(){Kc(this),null!==this.c&&this.g.reset(this.c)},t.clear=function(){Kc(this),this.B=!0,this.o.c();for(var e=0;e= 0) {\n logger.warn(\"\\n Warning: You are trying to load Firebase while using Firebase Performance standalone script.\\n You should load Firebase Performance with this instance of Firebase to avoid loading duplicate code.\\n \");\n }\n}\n\nvar firebaseNamespace = createFirebaseNamespace();\nvar initializeApp = firebaseNamespace.initializeApp; // TODO: This disable can be removed and the 'ignoreRestArgs' option added to\n// the no-explicit-any rule when ESlint releases it.\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\nfirebaseNamespace.initializeApp = function () {\n var args = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n } // Environment check before initializing app\n // Do the check in initializeApp, so people have a chance to disable it by setting logLevel\n // in @firebase/logger\n\n\n if (util.isNode()) {\n logger.warn(\"\\n Warning: This is a browser-targeted Firebase bundle but it appears it is being\\n run in a Node environment. If running in a Node environment, make sure you\\n are using the bundle specified by the \\\"main\\\" field in package.json.\\n \\n If you are using Webpack, you can specify \\\"main\\\" as the first item in\\n \\\"resolve.mainFields\\\":\\n https://webpack.js.org/configuration/resolve/#resolvemainfields\\n \\n If using Rollup, use the rollup-plugin-node-resolve plugin and specify \\\"main\\\"\\n as the first item in \\\"mainFields\\\", e.g. ['main', 'module'].\\n https://github.com/rollup/rollup-plugin-node-resolve\\n \");\n }\n\n return initializeApp.apply(undefined, args);\n};\n\nvar firebase = firebaseNamespace;\nexports.default = firebase;\nexports.firebase = firebase;","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react.production.min.js');\n} else {\n module.exports = require('./cjs/react.development.js');\n}","module.exports = require(\"regenerator-runtime\");\n","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nexport default function _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}","'use strict';\n\nfunction _interopDefault(ex) {\n return ex && typeof ex === 'object' && 'default' in ex ? ex['default'] : ex;\n}\n\nvar firebase = _interopDefault(require('@firebase/app'));\n/**\r\n * @license\r\n * Copyright 2018 Google Inc.\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\n\n\nmodule.exports = firebase;","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n'use strict';\n/* eslint-disable no-unused-vars */\n\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n if (val === null || val === undefined) {\n throw new TypeError('Object.assign cannot be called with null or undefined');\n }\n\n return Object(val);\n}\n\nfunction shouldUseNative() {\n try {\n if (!Object.assign) {\n return false;\n } // Detect buggy property enumeration order in older V8 versions.\n // https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\n\n var test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\n test1[5] = 'de';\n\n if (Object.getOwnPropertyNames(test1)[0] === '5') {\n return false;\n } // https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\n\n var test2 = {};\n\n for (var i = 0; i < 10; i++) {\n test2['_' + String.fromCharCode(i)] = i;\n }\n\n var order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n return test2[n];\n });\n\n if (order2.join('') !== '0123456789') {\n return false;\n } // https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\n\n var test3 = {};\n 'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n test3[letter] = letter;\n });\n\n if (Object.keys(Object.assign({}, test3)).join('') !== 'abcdefghijklmnopqrst') {\n return false;\n }\n\n return true;\n } catch (err) {\n // We don't expect any of the above to throw, but better to be safe.\n return false;\n }\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n var from;\n var to = toObject(target);\n var symbols;\n\n for (var s = 1; s < arguments.length; s++) {\n from = Object(arguments[s]);\n\n for (var key in from) {\n if (hasOwnProperty.call(from, key)) {\n to[key] = from[key];\n }\n }\n\n if (getOwnPropertySymbols) {\n symbols = getOwnPropertySymbols(from);\n\n for (var i = 0; i < symbols.length; i++) {\n if (propIsEnumerable.call(from, symbols[i])) {\n to[symbols[i]] = from[symbols[i]];\n }\n }\n }\n }\n\n return to;\n};","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\n\n/* global Reflect, Promise */\nvar _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (b.hasOwnProperty(p)) d[p] = b[p];\n }\n };\n\n return _extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n _extendStatics(d, b);\n\n function __() {\n this.constructor = d;\n }\n\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nvar _assign = function __assign() {\n _assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n }\n\n return t;\n };\n\n return _assign.apply(this, arguments);\n};\n\nexport { _assign as __assign };\nexport function __rest(s, e) {\n var t = {};\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n }\n\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n}\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length,\n r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc,\n d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);else for (var i = decorators.length - 1; i >= 0; i--) {\n if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n }\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\nexport function __param(paramIndex, decorator) {\n return function (target, key) {\n decorator(target, key, paramIndex);\n };\n}\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\nexport function __awaiter(thisArg, _arguments, P, generator) {\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n\n function step(result) {\n result.done ? resolve(result.value) : new P(function (resolve) {\n resolve(result.value);\n }).then(fulfilled, rejected);\n }\n\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\nexport function __generator(thisArg, body) {\n var _ = {\n label: 0,\n sent: function sent() {\n if (t[0] & 1) throw t[1];\n return t[1];\n },\n trys: [],\n ops: []\n },\n f,\n y,\n t,\n g;\n return g = {\n next: verb(0),\n \"throw\": verb(1),\n \"return\": verb(2)\n }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function () {\n return this;\n }), g;\n\n function verb(n) {\n return function (v) {\n return step([n, v]);\n };\n }\n\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n\n while (_) {\n try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n\n switch (op[0]) {\n case 0:\n case 1:\n t = op;\n break;\n\n case 4:\n _.label++;\n return {\n value: op[1],\n done: false\n };\n\n case 5:\n _.label++;\n y = op[1];\n op = [0];\n continue;\n\n case 7:\n op = _.ops.pop();\n\n _.trys.pop();\n\n continue;\n\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {\n _ = 0;\n continue;\n }\n\n if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {\n _.label = op[1];\n break;\n }\n\n if (op[0] === 6 && _.label < t[1]) {\n _.label = t[1];\n t = op;\n break;\n }\n\n if (t && _.label < t[2]) {\n _.label = t[2];\n\n _.ops.push(op);\n\n break;\n }\n\n if (t[2]) _.ops.pop();\n\n _.trys.pop();\n\n continue;\n }\n\n op = body.call(thisArg, _);\n } catch (e) {\n op = [6, e];\n y = 0;\n } finally {\n f = t = 0;\n }\n }\n\n if (op[0] & 5) throw op[1];\n return {\n value: op[0] ? op[1] : void 0,\n done: true\n };\n }\n}\nexport function __exportStar(m, exports) {\n for (var p in m) {\n if (!exports.hasOwnProperty(p)) exports[p] = m[p];\n }\n}\nexport function __values(o) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator],\n i = 0;\n if (m) return m.call(o);\n return {\n next: function next() {\n if (o && i >= o.length) o = void 0;\n return {\n value: o && o[i++],\n done: !o\n };\n }\n };\n}\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o),\n r,\n ar = [],\n e;\n\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) {\n ar.push(r.value);\n }\n } catch (error) {\n e = {\n error: error\n };\n } finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n } finally {\n if (e) throw e.error;\n }\n }\n\n return ar;\n}\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++) {\n ar = ar.concat(__read(arguments[i]));\n }\n\n return ar;\n}\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) {\n s += arguments[i].length;\n }\n\n for (var r = Array(s), k = 0, i = 0; i < il; i++) {\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) {\n r[k] = a[j];\n }\n }\n\n return r;\n}\n;\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []),\n i,\n q = [];\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () {\n return this;\n }, i;\n\n function verb(n) {\n if (g[n]) i[n] = function (v) {\n return new Promise(function (a, b) {\n q.push([n, v, a, b]) > 1 || resume(n, v);\n });\n };\n }\n\n function resume(n, v) {\n try {\n step(g[n](v));\n } catch (e) {\n settle(q[0][3], e);\n }\n }\n\n function step(r) {\n r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r);\n }\n\n function fulfill(value) {\n resume(\"next\", value);\n }\n\n function reject(value) {\n resume(\"throw\", value);\n }\n\n function settle(f, v) {\n if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]);\n }\n}\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) {\n throw e;\n }), verb(\"return\"), i[Symbol.iterator] = function () {\n return this;\n }, i;\n\n function verb(n, f) {\n i[n] = o[n] ? function (v) {\n return (p = !p) ? {\n value: __await(o[n](v)),\n done: n === \"return\"\n } : f ? f(v) : v;\n } : f;\n }\n}\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator],\n i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () {\n return this;\n }, i);\n\n function verb(n) {\n i[n] = o[n] && function (v) {\n return new Promise(function (resolve, reject) {\n v = o[n](v), settle(resolve, reject, v.done, v.value);\n });\n };\n }\n\n function settle(resolve, reject, d, v) {\n Promise.resolve(v).then(function (v) {\n resolve({\n value: v,\n done: d\n });\n }, reject);\n }\n}\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) {\n Object.defineProperty(cooked, \"raw\", {\n value: raw\n });\n } else {\n cooked.raw = raw;\n }\n\n return cooked;\n}\n;\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) {\n if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\n }\n result.default = mod;\n return result;\n}\nexport function __importDefault(mod) {\n return mod && mod.__esModule ? mod : {\n default: mod\n };\n}","var g; // This works in non-strict mode\n\ng = function () {\n return this;\n}();\n\ntry {\n // This works if eval is allowed (see CSP)\n g = g || new Function(\"return this\")();\n} catch (e) {\n // This works if the window reference is available\n if (typeof window === \"object\") g = window;\n} // g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\n\nmodule.exports = g;","'use strict';\n\nfunction checkDCE() {\n /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */\n if (typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined' || typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE !== 'function') {\n return;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n // This branch is unreachable because this function is only called\n // in production, but the condition is true only in development.\n // Therefore if the branch is still here, dead code elimination wasn't\n // properly applied.\n // Don't change the message. React DevTools relies on it. Also make sure\n // this message doesn't occur elsewhere in this function, or it will cause\n // a false positive.\n throw new Error('^_^');\n }\n\n try {\n // Verify that the code above has been dead code eliminated (DCE'd).\n __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(checkDCE);\n } catch (err) {\n // DevTools shouldn't crash React, no matter what.\n // We should still report in case we break this code.\n console.error(err);\n }\n}\n\nif (process.env.NODE_ENV === 'production') {\n // DCE check should happen before ReactDOM bundle executes so that\n // DevTools can report bad minification during injection.\n checkDCE();\n module.exports = require('./cjs/react-dom.production.min.js');\n} else {\n module.exports = require('./cjs/react-dom.development.js');\n}","export default function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nexport default function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}","export default function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}","function _typeof2(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof2 = function _typeof2(obj) { return typeof obj; }; } else { _typeof2 = function _typeof2(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof2(obj); }\n\nexport default function _typeof(obj) {\n if (typeof Symbol === \"function\" && _typeof2(Symbol.iterator) === \"symbol\") {\n _typeof = function _typeof(obj) {\n return _typeof2(obj);\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : _typeof2(obj);\n };\n }\n\n return _typeof(obj);\n}","import _typeof from \"../../helpers/esm/typeof\";\nimport assertThisInitialized from \"./assertThisInitialized\";\nexport default function _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return assertThisInitialized(self);\n}","export default function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}","export default function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}","import setPrototypeOf from \"./setPrototypeOf\";\nexport default function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}","/** @license React v16.9.0\n * react.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';\n\nvar h = require(\"object-assign\"),\n n = \"function\" === typeof Symbol && Symbol.for,\n p = n ? Symbol.for(\"react.element\") : 60103,\n q = n ? Symbol.for(\"react.portal\") : 60106,\n r = n ? Symbol.for(\"react.fragment\") : 60107,\n t = n ? Symbol.for(\"react.strict_mode\") : 60108,\n u = n ? Symbol.for(\"react.profiler\") : 60114,\n v = n ? Symbol.for(\"react.provider\") : 60109,\n w = n ? Symbol.for(\"react.context\") : 60110,\n x = n ? Symbol.for(\"react.forward_ref\") : 60112,\n y = n ? Symbol.for(\"react.suspense\") : 60113,\n aa = n ? Symbol.for(\"react.suspense_list\") : 60120,\n ba = n ? Symbol.for(\"react.memo\") : 60115,\n ca = n ? Symbol.for(\"react.lazy\") : 60116;\n\nn && Symbol.for(\"react.fundamental\");\nn && Symbol.for(\"react.responder\");\nvar z = \"function\" === typeof Symbol && Symbol.iterator;\n\nfunction A(a) {\n for (var b = a.message, d = \"https://reactjs.org/docs/error-decoder.html?invariant=\" + b, c = 1; c < arguments.length; c++) {\n d += \"&args[]=\" + encodeURIComponent(arguments[c]);\n }\n\n a.message = \"Minified React error #\" + b + \"; visit \" + d + \" for the full message or use the non-minified dev environment for full errors and additional helpful warnings. \";\n return a;\n}\n\nvar B = {\n isMounted: function isMounted() {\n return !1;\n },\n enqueueForceUpdate: function enqueueForceUpdate() {},\n enqueueReplaceState: function enqueueReplaceState() {},\n enqueueSetState: function enqueueSetState() {}\n},\n C = {};\n\nfunction D(a, b, d) {\n this.props = a;\n this.context = b;\n this.refs = C;\n this.updater = d || B;\n}\n\nD.prototype.isReactComponent = {};\n\nD.prototype.setState = function (a, b) {\n if (\"object\" !== typeof a && \"function\" !== typeof a && null != a) throw A(Error(85));\n this.updater.enqueueSetState(this, a, b, \"setState\");\n};\n\nD.prototype.forceUpdate = function (a) {\n this.updater.enqueueForceUpdate(this, a, \"forceUpdate\");\n};\n\nfunction E() {}\n\nE.prototype = D.prototype;\n\nfunction F(a, b, d) {\n this.props = a;\n this.context = b;\n this.refs = C;\n this.updater = d || B;\n}\n\nvar G = F.prototype = new E();\nG.constructor = F;\nh(G, D.prototype);\nG.isPureReactComponent = !0;\nvar H = {\n current: null\n},\n I = {\n suspense: null\n},\n J = {\n current: null\n},\n K = Object.prototype.hasOwnProperty,\n L = {\n key: !0,\n ref: !0,\n __self: !0,\n __source: !0\n};\n\nfunction M(a, b, d) {\n var c = void 0,\n e = {},\n g = null,\n k = null;\n if (null != b) for (c in void 0 !== b.ref && (k = b.ref), void 0 !== b.key && (g = \"\" + b.key), b) {\n K.call(b, c) && !L.hasOwnProperty(c) && (e[c] = b[c]);\n }\n var f = arguments.length - 2;\n if (1 === f) e.children = d;else if (1 < f) {\n for (var l = Array(f), m = 0; m < f; m++) {\n l[m] = arguments[m + 2];\n }\n\n e.children = l;\n }\n if (a && a.defaultProps) for (c in f = a.defaultProps, f) {\n void 0 === e[c] && (e[c] = f[c]);\n }\n return {\n $$typeof: p,\n type: a,\n key: g,\n ref: k,\n props: e,\n _owner: J.current\n };\n}\n\nfunction da(a, b) {\n return {\n $$typeof: p,\n type: a.type,\n key: b,\n ref: a.ref,\n props: a.props,\n _owner: a._owner\n };\n}\n\nfunction N(a) {\n return \"object\" === typeof a && null !== a && a.$$typeof === p;\n}\n\nfunction escape(a) {\n var b = {\n \"=\": \"=0\",\n \":\": \"=2\"\n };\n return \"$\" + (\"\" + a).replace(/[=:]/g, function (a) {\n return b[a];\n });\n}\n\nvar O = /\\/+/g,\n P = [];\n\nfunction Q(a, b, d, c) {\n if (P.length) {\n var e = P.pop();\n e.result = a;\n e.keyPrefix = b;\n e.func = d;\n e.context = c;\n e.count = 0;\n return e;\n }\n\n return {\n result: a,\n keyPrefix: b,\n func: d,\n context: c,\n count: 0\n };\n}\n\nfunction R(a) {\n a.result = null;\n a.keyPrefix = null;\n a.func = null;\n a.context = null;\n a.count = 0;\n 10 > P.length && P.push(a);\n}\n\nfunction S(a, b, d, c) {\n var e = typeof a;\n if (\"undefined\" === e || \"boolean\" === e) a = null;\n var g = !1;\n if (null === a) g = !0;else switch (e) {\n case \"string\":\n case \"number\":\n g = !0;\n break;\n\n case \"object\":\n switch (a.$$typeof) {\n case p:\n case q:\n g = !0;\n }\n\n }\n if (g) return d(c, a, \"\" === b ? \".\" + T(a, 0) : b), 1;\n g = 0;\n b = \"\" === b ? \".\" : b + \":\";\n if (Array.isArray(a)) for (var k = 0; k < a.length; k++) {\n e = a[k];\n var f = b + T(e, k);\n g += S(e, f, d, c);\n } else if (null === a || \"object\" !== typeof a ? f = null : (f = z && a[z] || a[\"@@iterator\"], f = \"function\" === typeof f ? f : null), \"function\" === typeof f) for (a = f.call(a), k = 0; !(e = a.next()).done;) {\n e = e.value, f = b + T(e, k++), g += S(e, f, d, c);\n } else if (\"object\" === e) throw d = \"\" + a, A(Error(31), \"[object Object]\" === d ? \"object with keys {\" + Object.keys(a).join(\", \") + \"}\" : d, \"\");\n return g;\n}\n\nfunction U(a, b, d) {\n return null == a ? 0 : S(a, \"\", b, d);\n}\n\nfunction T(a, b) {\n return \"object\" === typeof a && null !== a && null != a.key ? escape(a.key) : b.toString(36);\n}\n\nfunction ea(a, b) {\n a.func.call(a.context, b, a.count++);\n}\n\nfunction fa(a, b, d) {\n var c = a.result,\n e = a.keyPrefix;\n a = a.func.call(a.context, b, a.count++);\n Array.isArray(a) ? V(a, c, d, function (a) {\n return a;\n }) : null != a && (N(a) && (a = da(a, e + (!a.key || b && b.key === a.key ? \"\" : (\"\" + a.key).replace(O, \"$&/\") + \"/\") + d)), c.push(a));\n}\n\nfunction V(a, b, d, c, e) {\n var g = \"\";\n null != d && (g = (\"\" + d).replace(O, \"$&/\") + \"/\");\n b = Q(b, g, c, e);\n U(a, fa, b);\n R(b);\n}\n\nfunction W() {\n var a = H.current;\n if (null === a) throw A(Error(321));\n return a;\n}\n\nvar X = {\n Children: {\n map: function map(a, b, d) {\n if (null == a) return a;\n var c = [];\n V(a, c, null, b, d);\n return c;\n },\n forEach: function forEach(a, b, d) {\n if (null == a) return a;\n b = Q(null, null, b, d);\n U(a, ea, b);\n R(b);\n },\n count: function count(a) {\n return U(a, function () {\n return null;\n }, null);\n },\n toArray: function toArray(a) {\n var b = [];\n V(a, b, null, function (a) {\n return a;\n });\n return b;\n },\n only: function only(a) {\n if (!N(a)) throw A(Error(143));\n return a;\n }\n },\n createRef: function createRef() {\n return {\n current: null\n };\n },\n Component: D,\n PureComponent: F,\n createContext: function createContext(a, b) {\n void 0 === b && (b = null);\n a = {\n $$typeof: w,\n _calculateChangedBits: b,\n _currentValue: a,\n _currentValue2: a,\n _threadCount: 0,\n Provider: null,\n Consumer: null\n };\n a.Provider = {\n $$typeof: v,\n _context: a\n };\n return a.Consumer = a;\n },\n forwardRef: function forwardRef(a) {\n return {\n $$typeof: x,\n render: a\n };\n },\n lazy: function lazy(a) {\n return {\n $$typeof: ca,\n _ctor: a,\n _status: -1,\n _result: null\n };\n },\n memo: function memo(a, b) {\n return {\n $$typeof: ba,\n type: a,\n compare: void 0 === b ? null : b\n };\n },\n useCallback: function useCallback(a, b) {\n return W().useCallback(a, b);\n },\n useContext: function useContext(a, b) {\n return W().useContext(a, b);\n },\n useEffect: function useEffect(a, b) {\n return W().useEffect(a, b);\n },\n useImperativeHandle: function useImperativeHandle(a, b, d) {\n return W().useImperativeHandle(a, b, d);\n },\n useDebugValue: function useDebugValue() {},\n useLayoutEffect: function useLayoutEffect(a, b) {\n return W().useLayoutEffect(a, b);\n },\n useMemo: function useMemo(a, b) {\n return W().useMemo(a, b);\n },\n useReducer: function useReducer(a, b, d) {\n return W().useReducer(a, b, d);\n },\n useRef: function useRef(a) {\n return W().useRef(a);\n },\n useState: function useState(a) {\n return W().useState(a);\n },\n Fragment: r,\n Profiler: u,\n StrictMode: t,\n Suspense: y,\n unstable_SuspenseList: aa,\n createElement: M,\n cloneElement: function cloneElement(a, b, d) {\n if (null === a || void 0 === a) throw A(Error(267), a);\n var c = void 0,\n e = h({}, a.props),\n g = a.key,\n k = a.ref,\n f = a._owner;\n\n if (null != b) {\n void 0 !== b.ref && (k = b.ref, f = J.current);\n void 0 !== b.key && (g = \"\" + b.key);\n var l = void 0;\n a.type && a.type.defaultProps && (l = a.type.defaultProps);\n\n for (c in b) {\n K.call(b, c) && !L.hasOwnProperty(c) && (e[c] = void 0 === b[c] && void 0 !== l ? l[c] : b[c]);\n }\n }\n\n c = arguments.length - 2;\n if (1 === c) e.children = d;else if (1 < c) {\n l = Array(c);\n\n for (var m = 0; m < c; m++) {\n l[m] = arguments[m + 2];\n }\n\n e.children = l;\n }\n return {\n $$typeof: p,\n type: a.type,\n key: g,\n ref: k,\n props: e,\n _owner: f\n };\n },\n createFactory: function createFactory(a) {\n var b = M.bind(null, a);\n b.type = a;\n return b;\n },\n isValidElement: N,\n version: \"16.9.0\",\n unstable_withSuspenseConfig: function unstable_withSuspenseConfig(a, b) {\n var d = I.suspense;\n I.suspense = void 0 === b ? null : b;\n\n try {\n a();\n } finally {\n I.suspense = d;\n }\n },\n __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED: {\n ReactCurrentDispatcher: H,\n ReactCurrentBatchConfig: I,\n ReactCurrentOwner: J,\n IsSomeRendererActing: {\n current: !1\n },\n assign: h\n }\n},\n Y = {\n default: X\n},\n Z = Y && X || Y;\nmodule.exports = Z.default || Z;","/** @license React v16.9.0\n * react-dom.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n/*\n Modernizr 3.0.0pre (Custom Build) | MIT\n*/\n'use strict';\n\nvar aa = require(\"react\"),\n m = require(\"object-assign\"),\n q = require(\"scheduler\");\n\nfunction t(a) {\n for (var b = a.message, c = \"https://reactjs.org/docs/error-decoder.html?invariant=\" + b, d = 1; d < arguments.length; d++) {\n c += \"&args[]=\" + encodeURIComponent(arguments[d]);\n }\n\n a.message = \"Minified React error #\" + b + \"; visit \" + c + \" for the full message or use the non-minified dev environment for full errors and additional helpful warnings. \";\n return a;\n}\n\nif (!aa) throw t(Error(227));\nvar ba = null,\n ca = {};\n\nfunction da() {\n if (ba) for (var a in ca) {\n var b = ca[a],\n c = ba.indexOf(a);\n if (!(-1 < c)) throw t(Error(96), a);\n\n if (!ea[c]) {\n if (!b.extractEvents) throw t(Error(97), a);\n ea[c] = b;\n c = b.eventTypes;\n\n for (var d in c) {\n var e = void 0;\n var f = c[d],\n h = b,\n g = d;\n if (fa.hasOwnProperty(g)) throw t(Error(99), g);\n fa[g] = f;\n var k = f.phasedRegistrationNames;\n\n if (k) {\n for (e in k) {\n k.hasOwnProperty(e) && ha(k[e], h, g);\n }\n\n e = !0;\n } else f.registrationName ? (ha(f.registrationName, h, g), e = !0) : e = !1;\n\n if (!e) throw t(Error(98), d, a);\n }\n }\n }\n}\n\nfunction ha(a, b, c) {\n if (ia[a]) throw t(Error(100), a);\n ia[a] = b;\n ja[a] = b.eventTypes[c].dependencies;\n}\n\nvar ea = [],\n fa = {},\n ia = {},\n ja = {};\n\nfunction ka(a, b, c, d, e, f, h, g, k) {\n var l = Array.prototype.slice.call(arguments, 3);\n\n try {\n b.apply(c, l);\n } catch (n) {\n this.onError(n);\n }\n}\n\nvar la = !1,\n ma = null,\n na = !1,\n oa = null,\n pa = {\n onError: function onError(a) {\n la = !0;\n ma = a;\n }\n};\n\nfunction qa(a, b, c, d, e, f, h, g, k) {\n la = !1;\n ma = null;\n ka.apply(pa, arguments);\n}\n\nfunction ra(a, b, c, d, e, f, h, g, k) {\n qa.apply(this, arguments);\n\n if (la) {\n if (la) {\n var l = ma;\n la = !1;\n ma = null;\n } else throw t(Error(198));\n\n na || (na = !0, oa = l);\n }\n}\n\nvar sa = null,\n ta = null,\n va = null;\n\nfunction wa(a, b, c) {\n var d = a.type || \"unknown-event\";\n a.currentTarget = va(c);\n ra(d, b, void 0, a);\n a.currentTarget = null;\n}\n\nfunction xa(a, b) {\n if (null == b) throw t(Error(30));\n if (null == a) return b;\n\n if (Array.isArray(a)) {\n if (Array.isArray(b)) return a.push.apply(a, b), a;\n a.push(b);\n return a;\n }\n\n return Array.isArray(b) ? [a].concat(b) : [a, b];\n}\n\nfunction ya(a, b, c) {\n Array.isArray(a) ? a.forEach(b, c) : a && b.call(c, a);\n}\n\nvar za = null;\n\nfunction Aa(a) {\n if (a) {\n var b = a._dispatchListeners,\n c = a._dispatchInstances;\n if (Array.isArray(b)) for (var d = 0; d < b.length && !a.isPropagationStopped(); d++) {\n wa(a, b[d], c[d]);\n } else b && wa(a, b, c);\n a._dispatchListeners = null;\n a._dispatchInstances = null;\n a.isPersistent() || a.constructor.release(a);\n }\n}\n\nfunction Ba(a) {\n null !== a && (za = xa(za, a));\n a = za;\n za = null;\n\n if (a) {\n ya(a, Aa);\n if (za) throw t(Error(95));\n if (na) throw a = oa, na = !1, oa = null, a;\n }\n}\n\nvar Ca = {\n injectEventPluginOrder: function injectEventPluginOrder(a) {\n if (ba) throw t(Error(101));\n ba = Array.prototype.slice.call(a);\n da();\n },\n injectEventPluginsByName: function injectEventPluginsByName(a) {\n var b = !1,\n c;\n\n for (c in a) {\n if (a.hasOwnProperty(c)) {\n var d = a[c];\n\n if (!ca.hasOwnProperty(c) || ca[c] !== d) {\n if (ca[c]) throw t(Error(102), c);\n ca[c] = d;\n b = !0;\n }\n }\n }\n\n b && da();\n }\n};\n\nfunction Da(a, b) {\n var c = a.stateNode;\n if (!c) return null;\n var d = sa(c);\n if (!d) return null;\n c = d[b];\n\n a: switch (b) {\n case \"onClick\":\n case \"onClickCapture\":\n case \"onDoubleClick\":\n case \"onDoubleClickCapture\":\n case \"onMouseDown\":\n case \"onMouseDownCapture\":\n case \"onMouseMove\":\n case \"onMouseMoveCapture\":\n case \"onMouseUp\":\n case \"onMouseUpCapture\":\n (d = !d.disabled) || (a = a.type, d = !(\"button\" === a || \"input\" === a || \"select\" === a || \"textarea\" === a));\n a = !d;\n break a;\n\n default:\n a = !1;\n }\n\n if (a) return null;\n if (c && \"function\" !== typeof c) throw t(Error(231), b, typeof c);\n return c;\n}\n\nvar Ea = Math.random().toString(36).slice(2),\n Fa = \"__reactInternalInstance$\" + Ea,\n Ga = \"__reactEventHandlers$\" + Ea;\n\nfunction Ha(a) {\n if (a[Fa]) return a[Fa];\n\n for (; !a[Fa];) {\n if (a.parentNode) a = a.parentNode;else return null;\n }\n\n a = a[Fa];\n return 5 === a.tag || 6 === a.tag ? a : null;\n}\n\nfunction Ia(a) {\n a = a[Fa];\n return !a || 5 !== a.tag && 6 !== a.tag ? null : a;\n}\n\nfunction Ja(a) {\n if (5 === a.tag || 6 === a.tag) return a.stateNode;\n throw t(Error(33));\n}\n\nfunction Ka(a) {\n return a[Ga] || null;\n}\n\nfunction La(a) {\n do {\n a = a.return;\n } while (a && 5 !== a.tag);\n\n return a ? a : null;\n}\n\nfunction Ma(a, b, c) {\n if (b = Da(a, c.dispatchConfig.phasedRegistrationNames[b])) c._dispatchListeners = xa(c._dispatchListeners, b), c._dispatchInstances = xa(c._dispatchInstances, a);\n}\n\nfunction Na(a) {\n if (a && a.dispatchConfig.phasedRegistrationNames) {\n for (var b = a._targetInst, c = []; b;) {\n c.push(b), b = La(b);\n }\n\n for (b = c.length; 0 < b--;) {\n Ma(c[b], \"captured\", a);\n }\n\n for (b = 0; b < c.length; b++) {\n Ma(c[b], \"bubbled\", a);\n }\n }\n}\n\nfunction Oa(a, b, c) {\n a && c && c.dispatchConfig.registrationName && (b = Da(a, c.dispatchConfig.registrationName)) && (c._dispatchListeners = xa(c._dispatchListeners, b), c._dispatchInstances = xa(c._dispatchInstances, a));\n}\n\nfunction Pa(a) {\n a && a.dispatchConfig.registrationName && Oa(a._targetInst, null, a);\n}\n\nfunction Qa(a) {\n ya(a, Na);\n}\n\nvar Ra = !(\"undefined\" === typeof window || \"undefined\" === typeof window.document || \"undefined\" === typeof window.document.createElement);\n\nfunction Sa(a, b) {\n var c = {};\n c[a.toLowerCase()] = b.toLowerCase();\n c[\"Webkit\" + a] = \"webkit\" + b;\n c[\"Moz\" + a] = \"moz\" + b;\n return c;\n}\n\nvar Ta = {\n animationend: Sa(\"Animation\", \"AnimationEnd\"),\n animationiteration: Sa(\"Animation\", \"AnimationIteration\"),\n animationstart: Sa(\"Animation\", \"AnimationStart\"),\n transitionend: Sa(\"Transition\", \"TransitionEnd\")\n},\n Ua = {},\n Va = {};\nRa && (Va = document.createElement(\"div\").style, \"AnimationEvent\" in window || (delete Ta.animationend.animation, delete Ta.animationiteration.animation, delete Ta.animationstart.animation), \"TransitionEvent\" in window || delete Ta.transitionend.transition);\n\nfunction Wa(a) {\n if (Ua[a]) return Ua[a];\n if (!Ta[a]) return a;\n var b = Ta[a],\n c;\n\n for (c in b) {\n if (b.hasOwnProperty(c) && c in Va) return Ua[a] = b[c];\n }\n\n return a;\n}\n\nvar Xa = Wa(\"animationend\"),\n Ya = Wa(\"animationiteration\"),\n Za = Wa(\"animationstart\"),\n ab = Wa(\"transitionend\"),\n bb = \"abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange seeked seeking stalled suspend timeupdate volumechange waiting\".split(\" \"),\n cb = null,\n db = null,\n eb = null;\n\nfunction fb() {\n if (eb) return eb;\n var a,\n b = db,\n c = b.length,\n d,\n e = \"value\" in cb ? cb.value : cb.textContent,\n f = e.length;\n\n for (a = 0; a < c && b[a] === e[a]; a++) {\n ;\n }\n\n var h = c - a;\n\n for (d = 1; d <= h && b[c - d] === e[f - d]; d++) {\n ;\n }\n\n return eb = e.slice(a, 1 < d ? 1 - d : void 0);\n}\n\nfunction gb() {\n return !0;\n}\n\nfunction hb() {\n return !1;\n}\n\nfunction y(a, b, c, d) {\n this.dispatchConfig = a;\n this._targetInst = b;\n this.nativeEvent = c;\n a = this.constructor.Interface;\n\n for (var e in a) {\n a.hasOwnProperty(e) && ((b = a[e]) ? this[e] = b(c) : \"target\" === e ? this.target = d : this[e] = c[e]);\n }\n\n this.isDefaultPrevented = (null != c.defaultPrevented ? c.defaultPrevented : !1 === c.returnValue) ? gb : hb;\n this.isPropagationStopped = hb;\n return this;\n}\n\nm(y.prototype, {\n preventDefault: function preventDefault() {\n this.defaultPrevented = !0;\n var a = this.nativeEvent;\n a && (a.preventDefault ? a.preventDefault() : \"unknown\" !== typeof a.returnValue && (a.returnValue = !1), this.isDefaultPrevented = gb);\n },\n stopPropagation: function stopPropagation() {\n var a = this.nativeEvent;\n a && (a.stopPropagation ? a.stopPropagation() : \"unknown\" !== typeof a.cancelBubble && (a.cancelBubble = !0), this.isPropagationStopped = gb);\n },\n persist: function persist() {\n this.isPersistent = gb;\n },\n isPersistent: hb,\n destructor: function destructor() {\n var a = this.constructor.Interface,\n b;\n\n for (b in a) {\n this[b] = null;\n }\n\n this.nativeEvent = this._targetInst = this.dispatchConfig = null;\n this.isPropagationStopped = this.isDefaultPrevented = hb;\n this._dispatchInstances = this._dispatchListeners = null;\n }\n});\ny.Interface = {\n type: null,\n target: null,\n currentTarget: function currentTarget() {\n return null;\n },\n eventPhase: null,\n bubbles: null,\n cancelable: null,\n timeStamp: function timeStamp(a) {\n return a.timeStamp || Date.now();\n },\n defaultPrevented: null,\n isTrusted: null\n};\n\ny.extend = function (a) {\n function b() {}\n\n function c() {\n return d.apply(this, arguments);\n }\n\n var d = this;\n b.prototype = d.prototype;\n var e = new b();\n m(e, c.prototype);\n c.prototype = e;\n c.prototype.constructor = c;\n c.Interface = m({}, d.Interface, a);\n c.extend = d.extend;\n ib(c);\n return c;\n};\n\nib(y);\n\nfunction jb(a, b, c, d) {\n if (this.eventPool.length) {\n var e = this.eventPool.pop();\n this.call(e, a, b, c, d);\n return e;\n }\n\n return new this(a, b, c, d);\n}\n\nfunction kb(a) {\n if (!(a instanceof this)) throw t(Error(279));\n a.destructor();\n 10 > this.eventPool.length && this.eventPool.push(a);\n}\n\nfunction ib(a) {\n a.eventPool = [];\n a.getPooled = jb;\n a.release = kb;\n}\n\nvar lb = y.extend({\n data: null\n}),\n mb = y.extend({\n data: null\n}),\n nb = [9, 13, 27, 32],\n ob = Ra && \"CompositionEvent\" in window,\n pb = null;\nRa && \"documentMode\" in document && (pb = document.documentMode);\nvar qb = Ra && \"TextEvent\" in window && !pb,\n sb = Ra && (!ob || pb && 8 < pb && 11 >= pb),\n tb = String.fromCharCode(32),\n ub = {\n beforeInput: {\n phasedRegistrationNames: {\n bubbled: \"onBeforeInput\",\n captured: \"onBeforeInputCapture\"\n },\n dependencies: [\"compositionend\", \"keypress\", \"textInput\", \"paste\"]\n },\n compositionEnd: {\n phasedRegistrationNames: {\n bubbled: \"onCompositionEnd\",\n captured: \"onCompositionEndCapture\"\n },\n dependencies: \"blur compositionend keydown keypress keyup mousedown\".split(\" \")\n },\n compositionStart: {\n phasedRegistrationNames: {\n bubbled: \"onCompositionStart\",\n captured: \"onCompositionStartCapture\"\n },\n dependencies: \"blur compositionstart keydown keypress keyup mousedown\".split(\" \")\n },\n compositionUpdate: {\n phasedRegistrationNames: {\n bubbled: \"onCompositionUpdate\",\n captured: \"onCompositionUpdateCapture\"\n },\n dependencies: \"blur compositionupdate keydown keypress keyup mousedown\".split(\" \")\n }\n},\n vb = !1;\n\nfunction wb(a, b) {\n switch (a) {\n case \"keyup\":\n return -1 !== nb.indexOf(b.keyCode);\n\n case \"keydown\":\n return 229 !== b.keyCode;\n\n case \"keypress\":\n case \"mousedown\":\n case \"blur\":\n return !0;\n\n default:\n return !1;\n }\n}\n\nfunction xb(a) {\n a = a.detail;\n return \"object\" === typeof a && \"data\" in a ? a.data : null;\n}\n\nvar yb = !1;\n\nfunction Ab(a, b) {\n switch (a) {\n case \"compositionend\":\n return xb(b);\n\n case \"keypress\":\n if (32 !== b.which) return null;\n vb = !0;\n return tb;\n\n case \"textInput\":\n return a = b.data, a === tb && vb ? null : a;\n\n default:\n return null;\n }\n}\n\nfunction Bb(a, b) {\n if (yb) return \"compositionend\" === a || !ob && wb(a, b) ? (a = fb(), eb = db = cb = null, yb = !1, a) : null;\n\n switch (a) {\n case \"paste\":\n return null;\n\n case \"keypress\":\n if (!(b.ctrlKey || b.altKey || b.metaKey) || b.ctrlKey && b.altKey) {\n if (b.char && 1 < b.char.length) return b.char;\n if (b.which) return String.fromCharCode(b.which);\n }\n\n return null;\n\n case \"compositionend\":\n return sb && \"ko\" !== b.locale ? null : b.data;\n\n default:\n return null;\n }\n}\n\nvar Cb = {\n eventTypes: ub,\n extractEvents: function extractEvents(a, b, c, d) {\n var e = void 0;\n var f = void 0;\n if (ob) b: {\n switch (a) {\n case \"compositionstart\":\n e = ub.compositionStart;\n break b;\n\n case \"compositionend\":\n e = ub.compositionEnd;\n break b;\n\n case \"compositionupdate\":\n e = ub.compositionUpdate;\n break b;\n }\n\n e = void 0;\n } else yb ? wb(a, c) && (e = ub.compositionEnd) : \"keydown\" === a && 229 === c.keyCode && (e = ub.compositionStart);\n e ? (sb && \"ko\" !== c.locale && (yb || e !== ub.compositionStart ? e === ub.compositionEnd && yb && (f = fb()) : (cb = d, db = \"value\" in cb ? cb.value : cb.textContent, yb = !0)), e = lb.getPooled(e, b, c, d), f ? e.data = f : (f = xb(c), null !== f && (e.data = f)), Qa(e), f = e) : f = null;\n (a = qb ? Ab(a, c) : Bb(a, c)) ? (b = mb.getPooled(ub.beforeInput, b, c, d), b.data = a, Qa(b)) : b = null;\n return null === f ? b : null === b ? f : [f, b];\n }\n},\n Db = null,\n Eb = null,\n Fb = null;\n\nfunction Gb(a) {\n if (a = ta(a)) {\n if (\"function\" !== typeof Db) throw t(Error(280));\n var b = sa(a.stateNode);\n Db(a.stateNode, a.type, b);\n }\n}\n\nfunction Hb(a) {\n Eb ? Fb ? Fb.push(a) : Fb = [a] : Eb = a;\n}\n\nfunction Ib() {\n if (Eb) {\n var a = Eb,\n b = Fb;\n Fb = Eb = null;\n Gb(a);\n if (b) for (a = 0; a < b.length; a++) {\n Gb(b[a]);\n }\n }\n}\n\nfunction Jb(a, b) {\n return a(b);\n}\n\nfunction Kb(a, b, c, d) {\n return a(b, c, d);\n}\n\nfunction Lb() {}\n\nvar Mb = Jb,\n Nb = !1;\n\nfunction Ob() {\n if (null !== Eb || null !== Fb) Lb(), Ib();\n}\n\nvar Pb = {\n color: !0,\n date: !0,\n datetime: !0,\n \"datetime-local\": !0,\n email: !0,\n month: !0,\n number: !0,\n password: !0,\n range: !0,\n search: !0,\n tel: !0,\n text: !0,\n time: !0,\n url: !0,\n week: !0\n};\n\nfunction Qb(a) {\n var b = a && a.nodeName && a.nodeName.toLowerCase();\n return \"input\" === b ? !!Pb[a.type] : \"textarea\" === b ? !0 : !1;\n}\n\nfunction Rb(a) {\n a = a.target || a.srcElement || window;\n a.correspondingUseElement && (a = a.correspondingUseElement);\n return 3 === a.nodeType ? a.parentNode : a;\n}\n\nfunction Sb(a) {\n if (!Ra) return !1;\n a = \"on\" + a;\n var b = a in document;\n b || (b = document.createElement(\"div\"), b.setAttribute(a, \"return;\"), b = \"function\" === typeof b[a]);\n return b;\n}\n\nfunction Tb(a) {\n var b = a.type;\n return (a = a.nodeName) && \"input\" === a.toLowerCase() && (\"checkbox\" === b || \"radio\" === b);\n}\n\nfunction Ub(a) {\n var b = Tb(a) ? \"checked\" : \"value\",\n c = Object.getOwnPropertyDescriptor(a.constructor.prototype, b),\n d = \"\" + a[b];\n\n if (!a.hasOwnProperty(b) && \"undefined\" !== typeof c && \"function\" === typeof c.get && \"function\" === typeof c.set) {\n var e = c.get,\n f = c.set;\n Object.defineProperty(a, b, {\n configurable: !0,\n get: function get() {\n return e.call(this);\n },\n set: function set(a) {\n d = \"\" + a;\n f.call(this, a);\n }\n });\n Object.defineProperty(a, b, {\n enumerable: c.enumerable\n });\n return {\n getValue: function getValue() {\n return d;\n },\n setValue: function setValue(a) {\n d = \"\" + a;\n },\n stopTracking: function stopTracking() {\n a._valueTracker = null;\n delete a[b];\n }\n };\n }\n}\n\nfunction Vb(a) {\n a._valueTracker || (a._valueTracker = Ub(a));\n}\n\nfunction Wb(a) {\n if (!a) return !1;\n var b = a._valueTracker;\n if (!b) return !0;\n var c = b.getValue();\n var d = \"\";\n a && (d = Tb(a) ? a.checked ? \"true\" : \"false\" : a.value);\n a = d;\n return a !== c ? (b.setValue(a), !0) : !1;\n}\n\nvar Xb = aa.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;\nXb.hasOwnProperty(\"ReactCurrentDispatcher\") || (Xb.ReactCurrentDispatcher = {\n current: null\n});\nXb.hasOwnProperty(\"ReactCurrentBatchConfig\") || (Xb.ReactCurrentBatchConfig = {\n suspense: null\n});\nvar Yb = /^(.*)[\\\\\\/]/,\n B = \"function\" === typeof Symbol && Symbol.for,\n Zb = B ? Symbol.for(\"react.element\") : 60103,\n $b = B ? Symbol.for(\"react.portal\") : 60106,\n ac = B ? Symbol.for(\"react.fragment\") : 60107,\n bc = B ? Symbol.for(\"react.strict_mode\") : 60108,\n cc = B ? Symbol.for(\"react.profiler\") : 60114,\n dc = B ? Symbol.for(\"react.provider\") : 60109,\n ec = B ? Symbol.for(\"react.context\") : 60110,\n fc = B ? Symbol.for(\"react.concurrent_mode\") : 60111,\n gc = B ? Symbol.for(\"react.forward_ref\") : 60112,\n hc = B ? Symbol.for(\"react.suspense\") : 60113,\n ic = B ? Symbol.for(\"react.suspense_list\") : 60120,\n jc = B ? Symbol.for(\"react.memo\") : 60115,\n kc = B ? Symbol.for(\"react.lazy\") : 60116;\nB && Symbol.for(\"react.fundamental\");\nB && Symbol.for(\"react.responder\");\nvar lc = \"function\" === typeof Symbol && Symbol.iterator;\n\nfunction mc(a) {\n if (null === a || \"object\" !== typeof a) return null;\n a = lc && a[lc] || a[\"@@iterator\"];\n return \"function\" === typeof a ? a : null;\n}\n\nfunction oc(a) {\n if (null == a) return null;\n if (\"function\" === typeof a) return a.displayName || a.name || null;\n if (\"string\" === typeof a) return a;\n\n switch (a) {\n case ac:\n return \"Fragment\";\n\n case $b:\n return \"Portal\";\n\n case cc:\n return \"Profiler\";\n\n case bc:\n return \"StrictMode\";\n\n case hc:\n return \"Suspense\";\n\n case ic:\n return \"SuspenseList\";\n }\n\n if (\"object\" === typeof a) switch (a.$$typeof) {\n case ec:\n return \"Context.Consumer\";\n\n case dc:\n return \"Context.Provider\";\n\n case gc:\n var b = a.render;\n b = b.displayName || b.name || \"\";\n return a.displayName || (\"\" !== b ? \"ForwardRef(\" + b + \")\" : \"ForwardRef\");\n\n case jc:\n return oc(a.type);\n\n case kc:\n if (a = 1 === a._status ? a._result : null) return oc(a);\n }\n return null;\n}\n\nfunction pc(a) {\n var b = \"\";\n\n do {\n a: switch (a.tag) {\n case 3:\n case 4:\n case 6:\n case 7:\n case 10:\n case 9:\n var c = \"\";\n break a;\n\n default:\n var d = a._debugOwner,\n e = a._debugSource,\n f = oc(a.type);\n c = null;\n d && (c = oc(d.type));\n d = f;\n f = \"\";\n e ? f = \" (at \" + e.fileName.replace(Yb, \"\") + \":\" + e.lineNumber + \")\" : c && (f = \" (created by \" + c + \")\");\n c = \"\\n in \" + (d || \"Unknown\") + f;\n }\n\n b += c;\n a = a.return;\n } while (a);\n\n return b;\n}\n\nvar qc = /^[:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD][:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*$/,\n rc = Object.prototype.hasOwnProperty,\n sc = {},\n tc = {};\n\nfunction uc(a) {\n if (rc.call(tc, a)) return !0;\n if (rc.call(sc, a)) return !1;\n if (qc.test(a)) return tc[a] = !0;\n sc[a] = !0;\n return !1;\n}\n\nfunction vc(a, b, c, d) {\n if (null !== c && 0 === c.type) return !1;\n\n switch (typeof b) {\n case \"function\":\n case \"symbol\":\n return !0;\n\n case \"boolean\":\n if (d) return !1;\n if (null !== c) return !c.acceptsBooleans;\n a = a.toLowerCase().slice(0, 5);\n return \"data-\" !== a && \"aria-\" !== a;\n\n default:\n return !1;\n }\n}\n\nfunction wc(a, b, c, d) {\n if (null === b || \"undefined\" === typeof b || vc(a, b, c, d)) return !0;\n if (d) return !1;\n if (null !== c) switch (c.type) {\n case 3:\n return !b;\n\n case 4:\n return !1 === b;\n\n case 5:\n return isNaN(b);\n\n case 6:\n return isNaN(b) || 1 > b;\n }\n return !1;\n}\n\nfunction D(a, b, c, d, e, f) {\n this.acceptsBooleans = 2 === b || 3 === b || 4 === b;\n this.attributeName = d;\n this.attributeNamespace = e;\n this.mustUseProperty = c;\n this.propertyName = a;\n this.type = b;\n this.sanitizeURL = f;\n}\n\nvar F = {};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function (a) {\n F[a] = new D(a, 0, !1, a, null, !1);\n});\n[[\"acceptCharset\", \"accept-charset\"], [\"className\", \"class\"], [\"htmlFor\", \"for\"], [\"httpEquiv\", \"http-equiv\"]].forEach(function (a) {\n var b = a[0];\n F[b] = new D(b, 1, !1, a[1], null, !1);\n});\n[\"contentEditable\", \"draggable\", \"spellCheck\", \"value\"].forEach(function (a) {\n F[a] = new D(a, 2, !1, a.toLowerCase(), null, !1);\n});\n[\"autoReverse\", \"externalResourcesRequired\", \"focusable\", \"preserveAlpha\"].forEach(function (a) {\n F[a] = new D(a, 2, !1, a, null, !1);\n});\n\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function (a) {\n F[a] = new D(a, 3, !1, a.toLowerCase(), null, !1);\n});\n[\"checked\", \"multiple\", \"muted\", \"selected\"].forEach(function (a) {\n F[a] = new D(a, 3, !0, a, null, !1);\n});\n[\"capture\", \"download\"].forEach(function (a) {\n F[a] = new D(a, 4, !1, a, null, !1);\n});\n[\"cols\", \"rows\", \"size\", \"span\"].forEach(function (a) {\n F[a] = new D(a, 6, !1, a, null, !1);\n});\n[\"rowSpan\", \"start\"].forEach(function (a) {\n F[a] = new D(a, 5, !1, a.toLowerCase(), null, !1);\n});\nvar xc = /[\\-:]([a-z])/g;\n\nfunction yc(a) {\n return a[1].toUpperCase();\n}\n\n\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height\".split(\" \").forEach(function (a) {\n var b = a.replace(xc, yc);\n F[b] = new D(b, 1, !1, a, null, !1);\n});\n\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function (a) {\n var b = a.replace(xc, yc);\n F[b] = new D(b, 1, !1, a, \"http://www.w3.org/1999/xlink\", !1);\n});\n[\"xml:base\", \"xml:lang\", \"xml:space\"].forEach(function (a) {\n var b = a.replace(xc, yc);\n F[b] = new D(b, 1, !1, a, \"http://www.w3.org/XML/1998/namespace\", !1);\n});\n[\"tabIndex\", \"crossOrigin\"].forEach(function (a) {\n F[a] = new D(a, 1, !1, a.toLowerCase(), null, !1);\n});\nF.xlinkHref = new D(\"xlinkHref\", 1, !1, \"xlink:href\", \"http://www.w3.org/1999/xlink\", !0);\n[\"src\", \"href\", \"action\", \"formAction\"].forEach(function (a) {\n F[a] = new D(a, 1, !1, a.toLowerCase(), null, !0);\n});\n\nfunction zc(a, b, c, d) {\n var e = F.hasOwnProperty(b) ? F[b] : null;\n var f = null !== e ? 0 === e.type : d ? !1 : !(2 < b.length) || \"o\" !== b[0] && \"O\" !== b[0] || \"n\" !== b[1] && \"N\" !== b[1] ? !1 : !0;\n f || (wc(b, c, e, d) && (c = null), d || null === e ? uc(b) && (null === c ? a.removeAttribute(b) : a.setAttribute(b, \"\" + c)) : e.mustUseProperty ? a[e.propertyName] = null === c ? 3 === e.type ? !1 : \"\" : c : (b = e.attributeName, d = e.attributeNamespace, null === c ? a.removeAttribute(b) : (e = e.type, c = 3 === e || 4 === e && !0 === c ? \"\" : \"\" + c, d ? a.setAttributeNS(d, b, c) : a.setAttribute(b, c))));\n}\n\nfunction Ac(a) {\n switch (typeof a) {\n case \"boolean\":\n case \"number\":\n case \"object\":\n case \"string\":\n case \"undefined\":\n return a;\n\n default:\n return \"\";\n }\n}\n\nfunction Bc(a, b) {\n var c = b.checked;\n return m({}, b, {\n defaultChecked: void 0,\n defaultValue: void 0,\n value: void 0,\n checked: null != c ? c : a._wrapperState.initialChecked\n });\n}\n\nfunction Cc(a, b) {\n var c = null == b.defaultValue ? \"\" : b.defaultValue,\n d = null != b.checked ? b.checked : b.defaultChecked;\n c = Ac(null != b.value ? b.value : c);\n a._wrapperState = {\n initialChecked: d,\n initialValue: c,\n controlled: \"checkbox\" === b.type || \"radio\" === b.type ? null != b.checked : null != b.value\n };\n}\n\nfunction Dc(a, b) {\n b = b.checked;\n null != b && zc(a, \"checked\", b, !1);\n}\n\nfunction Ec(a, b) {\n Dc(a, b);\n var c = Ac(b.value),\n d = b.type;\n if (null != c) {\n if (\"number\" === d) {\n if (0 === c && \"\" === a.value || a.value != c) a.value = \"\" + c;\n } else a.value !== \"\" + c && (a.value = \"\" + c);\n } else if (\"submit\" === d || \"reset\" === d) {\n a.removeAttribute(\"value\");\n return;\n }\n b.hasOwnProperty(\"value\") ? Fc(a, b.type, c) : b.hasOwnProperty(\"defaultValue\") && Fc(a, b.type, Ac(b.defaultValue));\n null == b.checked && null != b.defaultChecked && (a.defaultChecked = !!b.defaultChecked);\n}\n\nfunction Gc(a, b, c) {\n if (b.hasOwnProperty(\"value\") || b.hasOwnProperty(\"defaultValue\")) {\n var d = b.type;\n if (!(\"submit\" !== d && \"reset\" !== d || void 0 !== b.value && null !== b.value)) return;\n b = \"\" + a._wrapperState.initialValue;\n c || b === a.value || (a.value = b);\n a.defaultValue = b;\n }\n\n c = a.name;\n \"\" !== c && (a.name = \"\");\n a.defaultChecked = !a.defaultChecked;\n a.defaultChecked = !!a._wrapperState.initialChecked;\n \"\" !== c && (a.name = c);\n}\n\nfunction Fc(a, b, c) {\n if (\"number\" !== b || a.ownerDocument.activeElement !== a) null == c ? a.defaultValue = \"\" + a._wrapperState.initialValue : a.defaultValue !== \"\" + c && (a.defaultValue = \"\" + c);\n}\n\nvar Hc = {\n change: {\n phasedRegistrationNames: {\n bubbled: \"onChange\",\n captured: \"onChangeCapture\"\n },\n dependencies: \"blur change click focus input keydown keyup selectionchange\".split(\" \")\n }\n};\n\nfunction Ic(a, b, c) {\n a = y.getPooled(Hc.change, a, b, c);\n a.type = \"change\";\n Hb(c);\n Qa(a);\n return a;\n}\n\nvar Jc = null,\n Kc = null;\n\nfunction Lc(a) {\n Ba(a);\n}\n\nfunction Mc(a) {\n var b = Ja(a);\n if (Wb(b)) return a;\n}\n\nfunction Nc(a, b) {\n if (\"change\" === a) return b;\n}\n\nvar Oc = !1;\nRa && (Oc = Sb(\"input\") && (!document.documentMode || 9 < document.documentMode));\n\nfunction Pc() {\n Jc && (Jc.detachEvent(\"onpropertychange\", Qc), Kc = Jc = null);\n}\n\nfunction Qc(a) {\n if (\"value\" === a.propertyName && Mc(Kc)) if (a = Ic(Kc, a, Rb(a)), Nb) Ba(a);else {\n Nb = !0;\n\n try {\n Jb(Lc, a);\n } finally {\n Nb = !1, Ob();\n }\n }\n}\n\nfunction Rc(a, b, c) {\n \"focus\" === a ? (Pc(), Jc = b, Kc = c, Jc.attachEvent(\"onpropertychange\", Qc)) : \"blur\" === a && Pc();\n}\n\nfunction Sc(a) {\n if (\"selectionchange\" === a || \"keyup\" === a || \"keydown\" === a) return Mc(Kc);\n}\n\nfunction Tc(a, b) {\n if (\"click\" === a) return Mc(b);\n}\n\nfunction Uc(a, b) {\n if (\"input\" === a || \"change\" === a) return Mc(b);\n}\n\nvar Vc = {\n eventTypes: Hc,\n _isInputEventSupported: Oc,\n extractEvents: function extractEvents(a, b, c, d) {\n var e = b ? Ja(b) : window,\n f = void 0,\n h = void 0,\n g = e.nodeName && e.nodeName.toLowerCase();\n \"select\" === g || \"input\" === g && \"file\" === e.type ? f = Nc : Qb(e) ? Oc ? f = Uc : (f = Sc, h = Rc) : (g = e.nodeName) && \"input\" === g.toLowerCase() && (\"checkbox\" === e.type || \"radio\" === e.type) && (f = Tc);\n if (f && (f = f(a, b))) return Ic(f, c, d);\n h && h(a, e, b);\n \"blur\" === a && (a = e._wrapperState) && a.controlled && \"number\" === e.type && Fc(e, \"number\", e.value);\n }\n},\n Wc = y.extend({\n view: null,\n detail: null\n}),\n Xc = {\n Alt: \"altKey\",\n Control: \"ctrlKey\",\n Meta: \"metaKey\",\n Shift: \"shiftKey\"\n};\n\nfunction Yc(a) {\n var b = this.nativeEvent;\n return b.getModifierState ? b.getModifierState(a) : (a = Xc[a]) ? !!b[a] : !1;\n}\n\nfunction Zc() {\n return Yc;\n}\n\nvar $c = 0,\n ad = 0,\n bd = !1,\n cd = !1,\n dd = Wc.extend({\n screenX: null,\n screenY: null,\n clientX: null,\n clientY: null,\n pageX: null,\n pageY: null,\n ctrlKey: null,\n shiftKey: null,\n altKey: null,\n metaKey: null,\n getModifierState: Zc,\n button: null,\n buttons: null,\n relatedTarget: function relatedTarget(a) {\n return a.relatedTarget || (a.fromElement === a.srcElement ? a.toElement : a.fromElement);\n },\n movementX: function movementX(a) {\n if (\"movementX\" in a) return a.movementX;\n var b = $c;\n $c = a.screenX;\n return bd ? \"mousemove\" === a.type ? a.screenX - b : 0 : (bd = !0, 0);\n },\n movementY: function movementY(a) {\n if (\"movementY\" in a) return a.movementY;\n var b = ad;\n ad = a.screenY;\n return cd ? \"mousemove\" === a.type ? a.screenY - b : 0 : (cd = !0, 0);\n }\n}),\n ed = dd.extend({\n pointerId: null,\n width: null,\n height: null,\n pressure: null,\n tangentialPressure: null,\n tiltX: null,\n tiltY: null,\n twist: null,\n pointerType: null,\n isPrimary: null\n}),\n fd = {\n mouseEnter: {\n registrationName: \"onMouseEnter\",\n dependencies: [\"mouseout\", \"mouseover\"]\n },\n mouseLeave: {\n registrationName: \"onMouseLeave\",\n dependencies: [\"mouseout\", \"mouseover\"]\n },\n pointerEnter: {\n registrationName: \"onPointerEnter\",\n dependencies: [\"pointerout\", \"pointerover\"]\n },\n pointerLeave: {\n registrationName: \"onPointerLeave\",\n dependencies: [\"pointerout\", \"pointerover\"]\n }\n},\n gd = {\n eventTypes: fd,\n extractEvents: function extractEvents(a, b, c, d) {\n var e = \"mouseover\" === a || \"pointerover\" === a,\n f = \"mouseout\" === a || \"pointerout\" === a;\n if (e && (c.relatedTarget || c.fromElement) || !f && !e) return null;\n e = d.window === d ? d : (e = d.ownerDocument) ? e.defaultView || e.parentWindow : window;\n f ? (f = b, b = (b = c.relatedTarget || c.toElement) ? Ha(b) : null) : f = null;\n if (f === b) return null;\n var h = void 0,\n g = void 0,\n k = void 0,\n l = void 0;\n if (\"mouseout\" === a || \"mouseover\" === a) h = dd, g = fd.mouseLeave, k = fd.mouseEnter, l = \"mouse\";else if (\"pointerout\" === a || \"pointerover\" === a) h = ed, g = fd.pointerLeave, k = fd.pointerEnter, l = \"pointer\";\n var n = null == f ? e : Ja(f);\n e = null == b ? e : Ja(b);\n a = h.getPooled(g, f, c, d);\n a.type = l + \"leave\";\n a.target = n;\n a.relatedTarget = e;\n c = h.getPooled(k, b, c, d);\n c.type = l + \"enter\";\n c.target = e;\n c.relatedTarget = n;\n d = b;\n if (f && d) a: {\n b = f;\n e = d;\n l = 0;\n\n for (h = b; h; h = La(h)) {\n l++;\n }\n\n h = 0;\n\n for (k = e; k; k = La(k)) {\n h++;\n }\n\n for (; 0 < l - h;) {\n b = La(b), l--;\n }\n\n for (; 0 < h - l;) {\n e = La(e), h--;\n }\n\n for (; l--;) {\n if (b === e || b === e.alternate) break a;\n b = La(b);\n e = La(e);\n }\n\n b = null;\n } else b = null;\n e = b;\n\n for (b = []; f && f !== e;) {\n l = f.alternate;\n if (null !== l && l === e) break;\n b.push(f);\n f = La(f);\n }\n\n for (f = []; d && d !== e;) {\n l = d.alternate;\n if (null !== l && l === e) break;\n f.push(d);\n d = La(d);\n }\n\n for (d = 0; d < b.length; d++) {\n Oa(b[d], \"bubbled\", a);\n }\n\n for (d = f.length; 0 < d--;) {\n Oa(f[d], \"captured\", c);\n }\n\n return [a, c];\n }\n};\n\nfunction hd(a, b) {\n return a === b && (0 !== a || 1 / a === 1 / b) || a !== a && b !== b;\n}\n\nvar id = Object.prototype.hasOwnProperty;\n\nfunction jd(a, b) {\n if (hd(a, b)) return !0;\n if (\"object\" !== typeof a || null === a || \"object\" !== typeof b || null === b) return !1;\n var c = Object.keys(a),\n d = Object.keys(b);\n if (c.length !== d.length) return !1;\n\n for (d = 0; d < c.length; d++) {\n if (!id.call(b, c[d]) || !hd(a[c[d]], b[c[d]])) return !1;\n }\n\n return !0;\n}\n\nfunction kd(a, b) {\n return {\n responder: a,\n props: b\n };\n}\n\nnew Map();\nnew Map();\nnew Set();\nnew Map();\n\nfunction ld(a) {\n var b = a;\n if (a.alternate) for (; b.return;) {\n b = b.return;\n } else {\n if (0 !== (b.effectTag & 2)) return 1;\n\n for (; b.return;) {\n if (b = b.return, 0 !== (b.effectTag & 2)) return 1;\n }\n }\n return 3 === b.tag ? 2 : 3;\n}\n\nfunction od(a) {\n if (2 !== ld(a)) throw t(Error(188));\n}\n\nfunction pd(a) {\n var b = a.alternate;\n\n if (!b) {\n b = ld(a);\n if (3 === b) throw t(Error(188));\n return 1 === b ? null : a;\n }\n\n for (var c = a, d = b;;) {\n var e = c.return;\n if (null === e) break;\n var f = e.alternate;\n\n if (null === f) {\n d = e.return;\n\n if (null !== d) {\n c = d;\n continue;\n }\n\n break;\n }\n\n if (e.child === f.child) {\n for (f = e.child; f;) {\n if (f === c) return od(e), a;\n if (f === d) return od(e), b;\n f = f.sibling;\n }\n\n throw t(Error(188));\n }\n\n if (c.return !== d.return) c = e, d = f;else {\n for (var h = !1, g = e.child; g;) {\n if (g === c) {\n h = !0;\n c = e;\n d = f;\n break;\n }\n\n if (g === d) {\n h = !0;\n d = e;\n c = f;\n break;\n }\n\n g = g.sibling;\n }\n\n if (!h) {\n for (g = f.child; g;) {\n if (g === c) {\n h = !0;\n c = f;\n d = e;\n break;\n }\n\n if (g === d) {\n h = !0;\n d = f;\n c = e;\n break;\n }\n\n g = g.sibling;\n }\n\n if (!h) throw t(Error(189));\n }\n }\n if (c.alternate !== d) throw t(Error(190));\n }\n\n if (3 !== c.tag) throw t(Error(188));\n return c.stateNode.current === c ? a : b;\n}\n\nfunction qd(a) {\n a = pd(a);\n if (!a) return null;\n\n for (var b = a;;) {\n if (5 === b.tag || 6 === b.tag) return b;\n if (b.child) b.child.return = b, b = b.child;else {\n if (b === a) break;\n\n for (; !b.sibling;) {\n if (!b.return || b.return === a) return null;\n b = b.return;\n }\n\n b.sibling.return = b.return;\n b = b.sibling;\n }\n }\n\n return null;\n}\n\nvar rd = y.extend({\n animationName: null,\n elapsedTime: null,\n pseudoElement: null\n}),\n sd = y.extend({\n clipboardData: function clipboardData(a) {\n return \"clipboardData\" in a ? a.clipboardData : window.clipboardData;\n }\n}),\n td = Wc.extend({\n relatedTarget: null\n});\n\nfunction ud(a) {\n var b = a.keyCode;\n \"charCode\" in a ? (a = a.charCode, 0 === a && 13 === b && (a = 13)) : a = b;\n 10 === a && (a = 13);\n return 32 <= a || 13 === a ? a : 0;\n}\n\nvar vd = {\n Esc: \"Escape\",\n Spacebar: \" \",\n Left: \"ArrowLeft\",\n Up: \"ArrowUp\",\n Right: \"ArrowRight\",\n Down: \"ArrowDown\",\n Del: \"Delete\",\n Win: \"OS\",\n Menu: \"ContextMenu\",\n Apps: \"ContextMenu\",\n Scroll: \"ScrollLock\",\n MozPrintableKey: \"Unidentified\"\n},\n wd = {\n 8: \"Backspace\",\n 9: \"Tab\",\n 12: \"Clear\",\n 13: \"Enter\",\n 16: \"Shift\",\n 17: \"Control\",\n 18: \"Alt\",\n 19: \"Pause\",\n 20: \"CapsLock\",\n 27: \"Escape\",\n 32: \" \",\n 33: \"PageUp\",\n 34: \"PageDown\",\n 35: \"End\",\n 36: \"Home\",\n 37: \"ArrowLeft\",\n 38: \"ArrowUp\",\n 39: \"ArrowRight\",\n 40: \"ArrowDown\",\n 45: \"Insert\",\n 46: \"Delete\",\n 112: \"F1\",\n 113: \"F2\",\n 114: \"F3\",\n 115: \"F4\",\n 116: \"F5\",\n 117: \"F6\",\n 118: \"F7\",\n 119: \"F8\",\n 120: \"F9\",\n 121: \"F10\",\n 122: \"F11\",\n 123: \"F12\",\n 144: \"NumLock\",\n 145: \"ScrollLock\",\n 224: \"Meta\"\n},\n xd = Wc.extend({\n key: function key(a) {\n if (a.key) {\n var b = vd[a.key] || a.key;\n if (\"Unidentified\" !== b) return b;\n }\n\n return \"keypress\" === a.type ? (a = ud(a), 13 === a ? \"Enter\" : String.fromCharCode(a)) : \"keydown\" === a.type || \"keyup\" === a.type ? wd[a.keyCode] || \"Unidentified\" : \"\";\n },\n location: null,\n ctrlKey: null,\n shiftKey: null,\n altKey: null,\n metaKey: null,\n repeat: null,\n locale: null,\n getModifierState: Zc,\n charCode: function charCode(a) {\n return \"keypress\" === a.type ? ud(a) : 0;\n },\n keyCode: function keyCode(a) {\n return \"keydown\" === a.type || \"keyup\" === a.type ? a.keyCode : 0;\n },\n which: function which(a) {\n return \"keypress\" === a.type ? ud(a) : \"keydown\" === a.type || \"keyup\" === a.type ? a.keyCode : 0;\n }\n}),\n yd = dd.extend({\n dataTransfer: null\n}),\n zd = Wc.extend({\n touches: null,\n targetTouches: null,\n changedTouches: null,\n altKey: null,\n metaKey: null,\n ctrlKey: null,\n shiftKey: null,\n getModifierState: Zc\n}),\n Ad = y.extend({\n propertyName: null,\n elapsedTime: null,\n pseudoElement: null\n}),\n Bd = dd.extend({\n deltaX: function deltaX(a) {\n return \"deltaX\" in a ? a.deltaX : \"wheelDeltaX\" in a ? -a.wheelDeltaX : 0;\n },\n deltaY: function deltaY(a) {\n return \"deltaY\" in a ? a.deltaY : \"wheelDeltaY\" in a ? -a.wheelDeltaY : \"wheelDelta\" in a ? -a.wheelDelta : 0;\n },\n deltaZ: null,\n deltaMode: null\n}),\n Cd = [[\"blur\", \"blur\", 0], [\"cancel\", \"cancel\", 0], [\"click\", \"click\", 0], [\"close\", \"close\", 0], [\"contextmenu\", \"contextMenu\", 0], [\"copy\", \"copy\", 0], [\"cut\", \"cut\", 0], [\"auxclick\", \"auxClick\", 0], [\"dblclick\", \"doubleClick\", 0], [\"dragend\", \"dragEnd\", 0], [\"dragstart\", \"dragStart\", 0], [\"drop\", \"drop\", 0], [\"focus\", \"focus\", 0], [\"input\", \"input\", 0], [\"invalid\", \"invalid\", 0], [\"keydown\", \"keyDown\", 0], [\"keypress\", \"keyPress\", 0], [\"keyup\", \"keyUp\", 0], [\"mousedown\", \"mouseDown\", 0], [\"mouseup\", \"mouseUp\", 0], [\"paste\", \"paste\", 0], [\"pause\", \"pause\", 0], [\"play\", \"play\", 0], [\"pointercancel\", \"pointerCancel\", 0], [\"pointerdown\", \"pointerDown\", 0], [\"pointerup\", \"pointerUp\", 0], [\"ratechange\", \"rateChange\", 0], [\"reset\", \"reset\", 0], [\"seeked\", \"seeked\", 0], [\"submit\", \"submit\", 0], [\"touchcancel\", \"touchCancel\", 0], [\"touchend\", \"touchEnd\", 0], [\"touchstart\", \"touchStart\", 0], [\"volumechange\", \"volumeChange\", 0], [\"drag\", \"drag\", 1], [\"dragenter\", \"dragEnter\", 1], [\"dragexit\", \"dragExit\", 1], [\"dragleave\", \"dragLeave\", 1], [\"dragover\", \"dragOver\", 1], [\"mousemove\", \"mouseMove\", 1], [\"mouseout\", \"mouseOut\", 1], [\"mouseover\", \"mouseOver\", 1], [\"pointermove\", \"pointerMove\", 1], [\"pointerout\", \"pointerOut\", 1], [\"pointerover\", \"pointerOver\", 1], [\"scroll\", \"scroll\", 1], [\"toggle\", \"toggle\", 1], [\"touchmove\", \"touchMove\", 1], [\"wheel\", \"wheel\", 1], [\"abort\", \"abort\", 2], [Xa, \"animationEnd\", 2], [Ya, \"animationIteration\", 2], [Za, \"animationStart\", 2], [\"canplay\", \"canPlay\", 2], [\"canplaythrough\", \"canPlayThrough\", 2], [\"durationchange\", \"durationChange\", 2], [\"emptied\", \"emptied\", 2], [\"encrypted\", \"encrypted\", 2], [\"ended\", \"ended\", 2], [\"error\", \"error\", 2], [\"gotpointercapture\", \"gotPointerCapture\", 2], [\"load\", \"load\", 2], [\"loadeddata\", \"loadedData\", 2], [\"loadedmetadata\", \"loadedMetadata\", 2], [\"loadstart\", \"loadStart\", 2], [\"lostpointercapture\", \"lostPointerCapture\", 2], [\"playing\", \"playing\", 2], [\"progress\", \"progress\", 2], [\"seeking\", \"seeking\", 2], [\"stalled\", \"stalled\", 2], [\"suspend\", \"suspend\", 2], [\"timeupdate\", \"timeUpdate\", 2], [ab, \"transitionEnd\", 2], [\"waiting\", \"waiting\", 2]],\n Dd = {},\n Ed = {},\n Fd = 0;\n\nfor (; Fd < Cd.length; Fd++) {\n var Gd = Cd[Fd],\n Hd = Gd[0],\n Id = Gd[1],\n Jd = Gd[2],\n Kd = \"on\" + (Id[0].toUpperCase() + Id.slice(1)),\n Ld = {\n phasedRegistrationNames: {\n bubbled: Kd,\n captured: Kd + \"Capture\"\n },\n dependencies: [Hd],\n eventPriority: Jd\n };\n Dd[Id] = Ld;\n Ed[Hd] = Ld;\n}\n\nvar Md = {\n eventTypes: Dd,\n getEventPriority: function getEventPriority(a) {\n a = Ed[a];\n return void 0 !== a ? a.eventPriority : 2;\n },\n extractEvents: function extractEvents(a, b, c, d) {\n var e = Ed[a];\n if (!e) return null;\n\n switch (a) {\n case \"keypress\":\n if (0 === ud(c)) return null;\n\n case \"keydown\":\n case \"keyup\":\n a = xd;\n break;\n\n case \"blur\":\n case \"focus\":\n a = td;\n break;\n\n case \"click\":\n if (2 === c.button) return null;\n\n case \"auxclick\":\n case \"dblclick\":\n case \"mousedown\":\n case \"mousemove\":\n case \"mouseup\":\n case \"mouseout\":\n case \"mouseover\":\n case \"contextmenu\":\n a = dd;\n break;\n\n case \"drag\":\n case \"dragend\":\n case \"dragenter\":\n case \"dragexit\":\n case \"dragleave\":\n case \"dragover\":\n case \"dragstart\":\n case \"drop\":\n a = yd;\n break;\n\n case \"touchcancel\":\n case \"touchend\":\n case \"touchmove\":\n case \"touchstart\":\n a = zd;\n break;\n\n case Xa:\n case Ya:\n case Za:\n a = rd;\n break;\n\n case ab:\n a = Ad;\n break;\n\n case \"scroll\":\n a = Wc;\n break;\n\n case \"wheel\":\n a = Bd;\n break;\n\n case \"copy\":\n case \"cut\":\n case \"paste\":\n a = sd;\n break;\n\n case \"gotpointercapture\":\n case \"lostpointercapture\":\n case \"pointercancel\":\n case \"pointerdown\":\n case \"pointermove\":\n case \"pointerout\":\n case \"pointerover\":\n case \"pointerup\":\n a = ed;\n break;\n\n default:\n a = y;\n }\n\n b = a.getPooled(e, b, c, d);\n Qa(b);\n return b;\n }\n},\n Nd = Md.getEventPriority,\n Od = [];\n\nfunction Pd(a) {\n var b = a.targetInst,\n c = b;\n\n do {\n if (!c) {\n a.ancestors.push(c);\n break;\n }\n\n var d;\n\n for (d = c; d.return;) {\n d = d.return;\n }\n\n d = 3 !== d.tag ? null : d.stateNode.containerInfo;\n if (!d) break;\n a.ancestors.push(c);\n c = Ha(d);\n } while (c);\n\n for (c = 0; c < a.ancestors.length; c++) {\n b = a.ancestors[c];\n var e = Rb(a.nativeEvent);\n d = a.topLevelType;\n\n for (var f = a.nativeEvent, h = null, g = 0; g < ea.length; g++) {\n var k = ea[g];\n k && (k = k.extractEvents(d, b, f, e)) && (h = xa(h, k));\n }\n\n Ba(h);\n }\n}\n\nvar Qd = !0;\n\nfunction G(a, b) {\n Rd(b, a, !1);\n}\n\nfunction Rd(a, b, c) {\n switch (Nd(b)) {\n case 0:\n var d = Sd.bind(null, b, 1);\n break;\n\n case 1:\n d = Td.bind(null, b, 1);\n break;\n\n default:\n d = Ud.bind(null, b, 1);\n }\n\n c ? a.addEventListener(b, d, !0) : a.addEventListener(b, d, !1);\n}\n\nfunction Sd(a, b, c) {\n Nb || Lb();\n var d = Ud,\n e = Nb;\n Nb = !0;\n\n try {\n Kb(d, a, b, c);\n } finally {\n (Nb = e) || Ob();\n }\n}\n\nfunction Td(a, b, c) {\n Ud(a, b, c);\n}\n\nfunction Ud(a, b, c) {\n if (Qd) {\n b = Rb(c);\n b = Ha(b);\n null === b || \"number\" !== typeof b.tag || 2 === ld(b) || (b = null);\n\n if (Od.length) {\n var d = Od.pop();\n d.topLevelType = a;\n d.nativeEvent = c;\n d.targetInst = b;\n a = d;\n } else a = {\n topLevelType: a,\n nativeEvent: c,\n targetInst: b,\n ancestors: []\n };\n\n try {\n if (c = a, Nb) Pd(c, void 0);else {\n Nb = !0;\n\n try {\n Mb(Pd, c, void 0);\n } finally {\n Nb = !1, Ob();\n }\n }\n } finally {\n a.topLevelType = null, a.nativeEvent = null, a.targetInst = null, a.ancestors.length = 0, 10 > Od.length && Od.push(a);\n }\n }\n}\n\nvar Vd = new (\"function\" === typeof WeakMap ? WeakMap : Map)();\n\nfunction Wd(a) {\n var b = Vd.get(a);\n void 0 === b && (b = new Set(), Vd.set(a, b));\n return b;\n}\n\nfunction Xd(a) {\n a = a || (\"undefined\" !== typeof document ? document : void 0);\n if (\"undefined\" === typeof a) return null;\n\n try {\n return a.activeElement || a.body;\n } catch (b) {\n return a.body;\n }\n}\n\nfunction Yd(a) {\n for (; a && a.firstChild;) {\n a = a.firstChild;\n }\n\n return a;\n}\n\nfunction Zd(a, b) {\n var c = Yd(a);\n a = 0;\n\n for (var d; c;) {\n if (3 === c.nodeType) {\n d = a + c.textContent.length;\n if (a <= b && d >= b) return {\n node: c,\n offset: b - a\n };\n a = d;\n }\n\n a: {\n for (; c;) {\n if (c.nextSibling) {\n c = c.nextSibling;\n break a;\n }\n\n c = c.parentNode;\n }\n\n c = void 0;\n }\n\n c = Yd(c);\n }\n}\n\nfunction $d(a, b) {\n return a && b ? a === b ? !0 : a && 3 === a.nodeType ? !1 : b && 3 === b.nodeType ? $d(a, b.parentNode) : \"contains\" in a ? a.contains(b) : a.compareDocumentPosition ? !!(a.compareDocumentPosition(b) & 16) : !1 : !1;\n}\n\nfunction ae() {\n for (var a = window, b = Xd(); b instanceof a.HTMLIFrameElement;) {\n try {\n var c = \"string\" === typeof b.contentWindow.location.href;\n } catch (d) {\n c = !1;\n }\n\n if (c) a = b.contentWindow;else break;\n b = Xd(a.document);\n }\n\n return b;\n}\n\nfunction be(a) {\n var b = a && a.nodeName && a.nodeName.toLowerCase();\n return b && (\"input\" === b && (\"text\" === a.type || \"search\" === a.type || \"tel\" === a.type || \"url\" === a.type || \"password\" === a.type) || \"textarea\" === b || \"true\" === a.contentEditable);\n}\n\nvar ce = Ra && \"documentMode\" in document && 11 >= document.documentMode,\n de = {\n select: {\n phasedRegistrationNames: {\n bubbled: \"onSelect\",\n captured: \"onSelectCapture\"\n },\n dependencies: \"blur contextmenu dragend focus keydown keyup mousedown mouseup selectionchange\".split(\" \")\n }\n},\n ee = null,\n fe = null,\n ge = null,\n he = !1;\n\nfunction ie(a, b) {\n var c = b.window === b ? b.document : 9 === b.nodeType ? b : b.ownerDocument;\n if (he || null == ee || ee !== Xd(c)) return null;\n c = ee;\n \"selectionStart\" in c && be(c) ? c = {\n start: c.selectionStart,\n end: c.selectionEnd\n } : (c = (c.ownerDocument && c.ownerDocument.defaultView || window).getSelection(), c = {\n anchorNode: c.anchorNode,\n anchorOffset: c.anchorOffset,\n focusNode: c.focusNode,\n focusOffset: c.focusOffset\n });\n return ge && jd(ge, c) ? null : (ge = c, a = y.getPooled(de.select, fe, a, b), a.type = \"select\", a.target = ee, Qa(a), a);\n}\n\nvar je = {\n eventTypes: de,\n extractEvents: function extractEvents(a, b, c, d) {\n var e = d.window === d ? d.document : 9 === d.nodeType ? d : d.ownerDocument,\n f;\n\n if (!(f = !e)) {\n a: {\n e = Wd(e);\n f = ja.onSelect;\n\n for (var h = 0; h < f.length; h++) {\n if (!e.has(f[h])) {\n e = !1;\n break a;\n }\n }\n\n e = !0;\n }\n\n f = !e;\n }\n\n if (f) return null;\n e = b ? Ja(b) : window;\n\n switch (a) {\n case \"focus\":\n if (Qb(e) || \"true\" === e.contentEditable) ee = e, fe = b, ge = null;\n break;\n\n case \"blur\":\n ge = fe = ee = null;\n break;\n\n case \"mousedown\":\n he = !0;\n break;\n\n case \"contextmenu\":\n case \"mouseup\":\n case \"dragend\":\n return he = !1, ie(c, d);\n\n case \"selectionchange\":\n if (ce) break;\n\n case \"keydown\":\n case \"keyup\":\n return ie(c, d);\n }\n\n return null;\n }\n};\nCa.injectEventPluginOrder(\"ResponderEventPlugin SimpleEventPlugin EnterLeaveEventPlugin ChangeEventPlugin SelectEventPlugin BeforeInputEventPlugin\".split(\" \"));\nsa = Ka;\nta = Ia;\nva = Ja;\nCa.injectEventPluginsByName({\n SimpleEventPlugin: Md,\n EnterLeaveEventPlugin: gd,\n ChangeEventPlugin: Vc,\n SelectEventPlugin: je,\n BeforeInputEventPlugin: Cb\n});\n\nfunction ke(a) {\n var b = \"\";\n aa.Children.forEach(a, function (a) {\n null != a && (b += a);\n });\n return b;\n}\n\nfunction le(a, b) {\n a = m({\n children: void 0\n }, b);\n if (b = ke(b.children)) a.children = b;\n return a;\n}\n\nfunction me(a, b, c, d) {\n a = a.options;\n\n if (b) {\n b = {};\n\n for (var e = 0; e < c.length; e++) {\n b[\"$\" + c[e]] = !0;\n }\n\n for (c = 0; c < a.length; c++) {\n e = b.hasOwnProperty(\"$\" + a[c].value), a[c].selected !== e && (a[c].selected = e), e && d && (a[c].defaultSelected = !0);\n }\n } else {\n c = \"\" + Ac(c);\n b = null;\n\n for (e = 0; e < a.length; e++) {\n if (a[e].value === c) {\n a[e].selected = !0;\n d && (a[e].defaultSelected = !0);\n return;\n }\n\n null !== b || a[e].disabled || (b = a[e]);\n }\n\n null !== b && (b.selected = !0);\n }\n}\n\nfunction ne(a, b) {\n if (null != b.dangerouslySetInnerHTML) throw t(Error(91));\n return m({}, b, {\n value: void 0,\n defaultValue: void 0,\n children: \"\" + a._wrapperState.initialValue\n });\n}\n\nfunction oe(a, b) {\n var c = b.value;\n\n if (null == c) {\n c = b.defaultValue;\n b = b.children;\n\n if (null != b) {\n if (null != c) throw t(Error(92));\n\n if (Array.isArray(b)) {\n if (!(1 >= b.length)) throw t(Error(93));\n b = b[0];\n }\n\n c = b;\n }\n\n null == c && (c = \"\");\n }\n\n a._wrapperState = {\n initialValue: Ac(c)\n };\n}\n\nfunction pe(a, b) {\n var c = Ac(b.value),\n d = Ac(b.defaultValue);\n null != c && (c = \"\" + c, c !== a.value && (a.value = c), null == b.defaultValue && a.defaultValue !== c && (a.defaultValue = c));\n null != d && (a.defaultValue = \"\" + d);\n}\n\nfunction qe(a) {\n var b = a.textContent;\n b === a._wrapperState.initialValue && (a.value = b);\n}\n\nvar re = {\n html: \"http://www.w3.org/1999/xhtml\",\n mathml: \"http://www.w3.org/1998/Math/MathML\",\n svg: \"http://www.w3.org/2000/svg\"\n};\n\nfunction se(a) {\n switch (a) {\n case \"svg\":\n return \"http://www.w3.org/2000/svg\";\n\n case \"math\":\n return \"http://www.w3.org/1998/Math/MathML\";\n\n default:\n return \"http://www.w3.org/1999/xhtml\";\n }\n}\n\nfunction te(a, b) {\n return null == a || \"http://www.w3.org/1999/xhtml\" === a ? se(b) : \"http://www.w3.org/2000/svg\" === a && \"foreignObject\" === b ? \"http://www.w3.org/1999/xhtml\" : a;\n}\n\nvar ue = void 0,\n ve = function (a) {\n return \"undefined\" !== typeof MSApp && MSApp.execUnsafeLocalFunction ? function (b, c, d, e) {\n MSApp.execUnsafeLocalFunction(function () {\n return a(b, c, d, e);\n });\n } : a;\n}(function (a, b) {\n if (a.namespaceURI !== re.svg || \"innerHTML\" in a) a.innerHTML = b;else {\n ue = ue || document.createElement(\"div\");\n ue.innerHTML = \"\";\n\n for (b = ue.firstChild; a.firstChild;) {\n a.removeChild(a.firstChild);\n }\n\n for (; b.firstChild;) {\n a.appendChild(b.firstChild);\n }\n }\n});\n\nfunction we(a, b) {\n if (b) {\n var c = a.firstChild;\n\n if (c && c === a.lastChild && 3 === c.nodeType) {\n c.nodeValue = b;\n return;\n }\n }\n\n a.textContent = b;\n}\n\nvar xe = {\n animationIterationCount: !0,\n borderImageOutset: !0,\n borderImageSlice: !0,\n borderImageWidth: !0,\n boxFlex: !0,\n boxFlexGroup: !0,\n boxOrdinalGroup: !0,\n columnCount: !0,\n columns: !0,\n flex: !0,\n flexGrow: !0,\n flexPositive: !0,\n flexShrink: !0,\n flexNegative: !0,\n flexOrder: !0,\n gridArea: !0,\n gridRow: !0,\n gridRowEnd: !0,\n gridRowSpan: !0,\n gridRowStart: !0,\n gridColumn: !0,\n gridColumnEnd: !0,\n gridColumnSpan: !0,\n gridColumnStart: !0,\n fontWeight: !0,\n lineClamp: !0,\n lineHeight: !0,\n opacity: !0,\n order: !0,\n orphans: !0,\n tabSize: !0,\n widows: !0,\n zIndex: !0,\n zoom: !0,\n fillOpacity: !0,\n floodOpacity: !0,\n stopOpacity: !0,\n strokeDasharray: !0,\n strokeDashoffset: !0,\n strokeMiterlimit: !0,\n strokeOpacity: !0,\n strokeWidth: !0\n},\n ye = [\"Webkit\", \"ms\", \"Moz\", \"O\"];\nObject.keys(xe).forEach(function (a) {\n ye.forEach(function (b) {\n b = b + a.charAt(0).toUpperCase() + a.substring(1);\n xe[b] = xe[a];\n });\n});\n\nfunction ze(a, b, c) {\n return null == b || \"boolean\" === typeof b || \"\" === b ? \"\" : c || \"number\" !== typeof b || 0 === b || xe.hasOwnProperty(a) && xe[a] ? (\"\" + b).trim() : b + \"px\";\n}\n\nfunction Ae(a, b) {\n a = a.style;\n\n for (var c in b) {\n if (b.hasOwnProperty(c)) {\n var d = 0 === c.indexOf(\"--\"),\n e = ze(c, b[c], d);\n \"float\" === c && (c = \"cssFloat\");\n d ? a.setProperty(c, e) : a[c] = e;\n }\n }\n}\n\nvar Ce = m({\n menuitem: !0\n}, {\n area: !0,\n base: !0,\n br: !0,\n col: !0,\n embed: !0,\n hr: !0,\n img: !0,\n input: !0,\n keygen: !0,\n link: !0,\n meta: !0,\n param: !0,\n source: !0,\n track: !0,\n wbr: !0\n});\n\nfunction De(a, b) {\n if (b) {\n if (Ce[a] && (null != b.children || null != b.dangerouslySetInnerHTML)) throw t(Error(137), a, \"\");\n\n if (null != b.dangerouslySetInnerHTML) {\n if (null != b.children) throw t(Error(60));\n if (!(\"object\" === typeof b.dangerouslySetInnerHTML && \"__html\" in b.dangerouslySetInnerHTML)) throw t(Error(61));\n }\n\n if (null != b.style && \"object\" !== typeof b.style) throw t(Error(62), \"\");\n }\n}\n\nfunction Ee(a, b) {\n if (-1 === a.indexOf(\"-\")) return \"string\" === typeof b.is;\n\n switch (a) {\n case \"annotation-xml\":\n case \"color-profile\":\n case \"font-face\":\n case \"font-face-src\":\n case \"font-face-uri\":\n case \"font-face-format\":\n case \"font-face-name\":\n case \"missing-glyph\":\n return !1;\n\n default:\n return !0;\n }\n}\n\nfunction Fe(a, b) {\n a = 9 === a.nodeType || 11 === a.nodeType ? a : a.ownerDocument;\n var c = Wd(a);\n b = ja[b];\n\n for (var d = 0; d < b.length; d++) {\n var e = b[d];\n\n if (!c.has(e)) {\n switch (e) {\n case \"scroll\":\n Rd(a, \"scroll\", !0);\n break;\n\n case \"focus\":\n case \"blur\":\n Rd(a, \"focus\", !0);\n Rd(a, \"blur\", !0);\n c.add(\"blur\");\n c.add(\"focus\");\n break;\n\n case \"cancel\":\n case \"close\":\n Sb(e) && Rd(a, e, !0);\n break;\n\n case \"invalid\":\n case \"submit\":\n case \"reset\":\n break;\n\n default:\n -1 === bb.indexOf(e) && G(e, a);\n }\n\n c.add(e);\n }\n }\n}\n\nfunction Ge() {}\n\nvar He = null,\n Ie = null;\n\nfunction Je(a, b) {\n switch (a) {\n case \"button\":\n case \"input\":\n case \"select\":\n case \"textarea\":\n return !!b.autoFocus;\n }\n\n return !1;\n}\n\nfunction Ke(a, b) {\n return \"textarea\" === a || \"option\" === a || \"noscript\" === a || \"string\" === typeof b.children || \"number\" === typeof b.children || \"object\" === typeof b.dangerouslySetInnerHTML && null !== b.dangerouslySetInnerHTML && null != b.dangerouslySetInnerHTML.__html;\n}\n\nvar Le = \"function\" === typeof setTimeout ? setTimeout : void 0,\n Me = \"function\" === typeof clearTimeout ? clearTimeout : void 0;\n\nfunction Ne(a) {\n for (; null != a; a = a.nextSibling) {\n var b = a.nodeType;\n if (1 === b || 3 === b) break;\n }\n\n return a;\n}\n\nnew Set();\nvar Oe = [],\n Pe = -1;\n\nfunction H(a) {\n 0 > Pe || (a.current = Oe[Pe], Oe[Pe] = null, Pe--);\n}\n\nfunction J(a, b) {\n Pe++;\n Oe[Pe] = a.current;\n a.current = b;\n}\n\nvar Qe = {},\n L = {\n current: Qe\n},\n M = {\n current: !1\n},\n Re = Qe;\n\nfunction Se(a, b) {\n var c = a.type.contextTypes;\n if (!c) return Qe;\n var d = a.stateNode;\n if (d && d.__reactInternalMemoizedUnmaskedChildContext === b) return d.__reactInternalMemoizedMaskedChildContext;\n var e = {},\n f;\n\n for (f in c) {\n e[f] = b[f];\n }\n\n d && (a = a.stateNode, a.__reactInternalMemoizedUnmaskedChildContext = b, a.__reactInternalMemoizedMaskedChildContext = e);\n return e;\n}\n\nfunction N(a) {\n a = a.childContextTypes;\n return null !== a && void 0 !== a;\n}\n\nfunction Te(a) {\n H(M, a);\n H(L, a);\n}\n\nfunction Ue(a) {\n H(M, a);\n H(L, a);\n}\n\nfunction Ve(a, b, c) {\n if (L.current !== Qe) throw t(Error(168));\n J(L, b, a);\n J(M, c, a);\n}\n\nfunction We(a, b, c) {\n var d = a.stateNode;\n a = b.childContextTypes;\n if (\"function\" !== typeof d.getChildContext) return c;\n d = d.getChildContext();\n\n for (var e in d) {\n if (!(e in a)) throw t(Error(108), oc(b) || \"Unknown\", e);\n }\n\n return m({}, c, d);\n}\n\nfunction Xe(a) {\n var b = a.stateNode;\n b = b && b.__reactInternalMemoizedMergedChildContext || Qe;\n Re = L.current;\n J(L, b, a);\n J(M, M.current, a);\n return !0;\n}\n\nfunction Ye(a, b, c) {\n var d = a.stateNode;\n if (!d) throw t(Error(169));\n c ? (b = We(a, b, Re), d.__reactInternalMemoizedMergedChildContext = b, H(M, a), H(L, a), J(L, b, a)) : H(M, a);\n J(M, c, a);\n}\n\nvar Ze = q.unstable_runWithPriority,\n $e = q.unstable_scheduleCallback,\n af = q.unstable_cancelCallback,\n bf = q.unstable_shouldYield,\n cf = q.unstable_requestPaint,\n df = q.unstable_now,\n ef = q.unstable_getCurrentPriorityLevel,\n ff = q.unstable_ImmediatePriority,\n hf = q.unstable_UserBlockingPriority,\n jf = q.unstable_NormalPriority,\n kf = q.unstable_LowPriority,\n lf = q.unstable_IdlePriority,\n mf = {},\n nf = void 0 !== cf ? cf : function () {},\n of = null,\n pf = null,\n qf = !1,\n rf = df(),\n sf = 1E4 > rf ? df : function () {\n return df() - rf;\n};\n\nfunction tf() {\n switch (ef()) {\n case ff:\n return 99;\n\n case hf:\n return 98;\n\n case jf:\n return 97;\n\n case kf:\n return 96;\n\n case lf:\n return 95;\n\n default:\n throw t(Error(332));\n }\n}\n\nfunction uf(a) {\n switch (a) {\n case 99:\n return ff;\n\n case 98:\n return hf;\n\n case 97:\n return jf;\n\n case 96:\n return kf;\n\n case 95:\n return lf;\n\n default:\n throw t(Error(332));\n }\n}\n\nfunction vf(a, b) {\n a = uf(a);\n return Ze(a, b);\n}\n\nfunction wf(a, b, c) {\n a = uf(a);\n return $e(a, b, c);\n}\n\nfunction xf(a) {\n null === of ? (of = [a], pf = $e(ff, yf)) : of.push(a);\n return mf;\n}\n\nfunction O() {\n null !== pf && af(pf);\n yf();\n}\n\nfunction yf() {\n if (!qf && null !== of) {\n qf = !0;\n var a = 0;\n\n try {\n var b = of;\n vf(99, function () {\n for (; a < b.length; a++) {\n var c = b[a];\n\n do {\n c = c(!0);\n } while (null !== c);\n }\n });\n of = null;\n } catch (c) {\n throw null !== of && (of = of.slice(a + 1)), $e(ff, O), c;\n } finally {\n qf = !1;\n }\n }\n}\n\nfunction zf(a, b) {\n if (1073741823 === b) return 99;\n if (1 === b) return 95;\n a = 10 * (1073741821 - b) - 10 * (1073741821 - a);\n return 0 >= a ? 99 : 250 >= a ? 98 : 5250 >= a ? 97 : 95;\n}\n\nfunction Af(a, b) {\n if (a && a.defaultProps) {\n b = m({}, b);\n a = a.defaultProps;\n\n for (var c in a) {\n void 0 === b[c] && (b[c] = a[c]);\n }\n }\n\n return b;\n}\n\nfunction Bf(a) {\n var b = a._result;\n\n switch (a._status) {\n case 1:\n return b;\n\n case 2:\n throw b;\n\n case 0:\n throw b;\n\n default:\n a._status = 0;\n b = a._ctor;\n b = b();\n b.then(function (b) {\n 0 === a._status && (b = b.default, a._status = 1, a._result = b);\n }, function (b) {\n 0 === a._status && (a._status = 2, a._result = b);\n });\n\n switch (a._status) {\n case 1:\n return a._result;\n\n case 2:\n throw a._result;\n }\n\n a._result = b;\n throw b;\n }\n}\n\nvar Cf = {\n current: null\n},\n Df = null,\n Ef = null,\n Ff = null;\n\nfunction Gf() {\n Ff = Ef = Df = null;\n}\n\nfunction Hf(a, b) {\n var c = a.type._context;\n J(Cf, c._currentValue, a);\n c._currentValue = b;\n}\n\nfunction If(a) {\n var b = Cf.current;\n H(Cf, a);\n a.type._context._currentValue = b;\n}\n\nfunction Jf(a, b) {\n for (; null !== a;) {\n var c = a.alternate;\n if (a.childExpirationTime < b) a.childExpirationTime = b, null !== c && c.childExpirationTime < b && (c.childExpirationTime = b);else if (null !== c && c.childExpirationTime < b) c.childExpirationTime = b;else break;\n a = a.return;\n }\n}\n\nfunction Kf(a, b) {\n Df = a;\n Ff = Ef = null;\n a = a.dependencies;\n null !== a && null !== a.firstContext && (a.expirationTime >= b && (Lf = !0), a.firstContext = null);\n}\n\nfunction Mf(a, b) {\n if (Ff !== a && !1 !== b && 0 !== b) {\n if (\"number\" !== typeof b || 1073741823 === b) Ff = a, b = 1073741823;\n b = {\n context: a,\n observedBits: b,\n next: null\n };\n\n if (null === Ef) {\n if (null === Df) throw t(Error(308));\n Ef = b;\n Df.dependencies = {\n expirationTime: 0,\n firstContext: b,\n responders: null\n };\n } else Ef = Ef.next = b;\n }\n\n return a._currentValue;\n}\n\nvar Nf = !1;\n\nfunction Of(a) {\n return {\n baseState: a,\n firstUpdate: null,\n lastUpdate: null,\n firstCapturedUpdate: null,\n lastCapturedUpdate: null,\n firstEffect: null,\n lastEffect: null,\n firstCapturedEffect: null,\n lastCapturedEffect: null\n };\n}\n\nfunction Pf(a) {\n return {\n baseState: a.baseState,\n firstUpdate: a.firstUpdate,\n lastUpdate: a.lastUpdate,\n firstCapturedUpdate: null,\n lastCapturedUpdate: null,\n firstEffect: null,\n lastEffect: null,\n firstCapturedEffect: null,\n lastCapturedEffect: null\n };\n}\n\nfunction Qf(a, b) {\n return {\n expirationTime: a,\n suspenseConfig: b,\n tag: 0,\n payload: null,\n callback: null,\n next: null,\n nextEffect: null\n };\n}\n\nfunction Rf(a, b) {\n null === a.lastUpdate ? a.firstUpdate = a.lastUpdate = b : (a.lastUpdate.next = b, a.lastUpdate = b);\n}\n\nfunction Sf(a, b) {\n var c = a.alternate;\n\n if (null === c) {\n var d = a.updateQueue;\n var e = null;\n null === d && (d = a.updateQueue = Of(a.memoizedState));\n } else d = a.updateQueue, e = c.updateQueue, null === d ? null === e ? (d = a.updateQueue = Of(a.memoizedState), e = c.updateQueue = Of(c.memoizedState)) : d = a.updateQueue = Pf(e) : null === e && (e = c.updateQueue = Pf(d));\n\n null === e || d === e ? Rf(d, b) : null === d.lastUpdate || null === e.lastUpdate ? (Rf(d, b), Rf(e, b)) : (Rf(d, b), e.lastUpdate = b);\n}\n\nfunction Tf(a, b) {\n var c = a.updateQueue;\n c = null === c ? a.updateQueue = Of(a.memoizedState) : Uf(a, c);\n null === c.lastCapturedUpdate ? c.firstCapturedUpdate = c.lastCapturedUpdate = b : (c.lastCapturedUpdate.next = b, c.lastCapturedUpdate = b);\n}\n\nfunction Uf(a, b) {\n var c = a.alternate;\n null !== c && b === c.updateQueue && (b = a.updateQueue = Pf(b));\n return b;\n}\n\nfunction Vf(a, b, c, d, e, f) {\n switch (c.tag) {\n case 1:\n return a = c.payload, \"function\" === typeof a ? a.call(f, d, e) : a;\n\n case 3:\n a.effectTag = a.effectTag & -2049 | 64;\n\n case 0:\n a = c.payload;\n e = \"function\" === typeof a ? a.call(f, d, e) : a;\n if (null === e || void 0 === e) break;\n return m({}, d, e);\n\n case 2:\n Nf = !0;\n }\n\n return d;\n}\n\nfunction Wf(a, b, c, d, e) {\n Nf = !1;\n b = Uf(a, b);\n\n for (var f = b.baseState, h = null, g = 0, k = b.firstUpdate, l = f; null !== k;) {\n var n = k.expirationTime;\n n < e ? (null === h && (h = k, f = l), g < n && (g = n)) : (Xf(n, k.suspenseConfig), l = Vf(a, b, k, l, c, d), null !== k.callback && (a.effectTag |= 32, k.nextEffect = null, null === b.lastEffect ? b.firstEffect = b.lastEffect = k : (b.lastEffect.nextEffect = k, b.lastEffect = k)));\n k = k.next;\n }\n\n n = null;\n\n for (k = b.firstCapturedUpdate; null !== k;) {\n var z = k.expirationTime;\n z < e ? (null === n && (n = k, null === h && (f = l)), g < z && (g = z)) : (l = Vf(a, b, k, l, c, d), null !== k.callback && (a.effectTag |= 32, k.nextEffect = null, null === b.lastCapturedEffect ? b.firstCapturedEffect = b.lastCapturedEffect = k : (b.lastCapturedEffect.nextEffect = k, b.lastCapturedEffect = k)));\n k = k.next;\n }\n\n null === h && (b.lastUpdate = null);\n null === n ? b.lastCapturedUpdate = null : a.effectTag |= 32;\n null === h && null === n && (f = l);\n b.baseState = f;\n b.firstUpdate = h;\n b.firstCapturedUpdate = n;\n a.expirationTime = g;\n a.memoizedState = l;\n}\n\nfunction Yf(a, b, c) {\n null !== b.firstCapturedUpdate && (null !== b.lastUpdate && (b.lastUpdate.next = b.firstCapturedUpdate, b.lastUpdate = b.lastCapturedUpdate), b.firstCapturedUpdate = b.lastCapturedUpdate = null);\n Zf(b.firstEffect, c);\n b.firstEffect = b.lastEffect = null;\n Zf(b.firstCapturedEffect, c);\n b.firstCapturedEffect = b.lastCapturedEffect = null;\n}\n\nfunction Zf(a, b) {\n for (; null !== a;) {\n var c = a.callback;\n\n if (null !== c) {\n a.callback = null;\n var d = b;\n if (\"function\" !== typeof c) throw t(Error(191), c);\n c.call(d);\n }\n\n a = a.nextEffect;\n }\n}\n\nvar $f = Xb.ReactCurrentBatchConfig,\n ag = new aa.Component().refs;\n\nfunction bg(a, b, c, d) {\n b = a.memoizedState;\n c = c(d, b);\n c = null === c || void 0 === c ? b : m({}, b, c);\n a.memoizedState = c;\n d = a.updateQueue;\n null !== d && 0 === a.expirationTime && (d.baseState = c);\n}\n\nvar fg = {\n isMounted: function isMounted(a) {\n return (a = a._reactInternalFiber) ? 2 === ld(a) : !1;\n },\n enqueueSetState: function enqueueSetState(a, b, c) {\n a = a._reactInternalFiber;\n var d = cg(),\n e = $f.suspense;\n d = dg(d, a, e);\n e = Qf(d, e);\n e.payload = b;\n void 0 !== c && null !== c && (e.callback = c);\n Sf(a, e);\n eg(a, d);\n },\n enqueueReplaceState: function enqueueReplaceState(a, b, c) {\n a = a._reactInternalFiber;\n var d = cg(),\n e = $f.suspense;\n d = dg(d, a, e);\n e = Qf(d, e);\n e.tag = 1;\n e.payload = b;\n void 0 !== c && null !== c && (e.callback = c);\n Sf(a, e);\n eg(a, d);\n },\n enqueueForceUpdate: function enqueueForceUpdate(a, b) {\n a = a._reactInternalFiber;\n var c = cg(),\n d = $f.suspense;\n c = dg(c, a, d);\n d = Qf(c, d);\n d.tag = 2;\n void 0 !== b && null !== b && (d.callback = b);\n Sf(a, d);\n eg(a, c);\n }\n};\n\nfunction gg(a, b, c, d, e, f, h) {\n a = a.stateNode;\n return \"function\" === typeof a.shouldComponentUpdate ? a.shouldComponentUpdate(d, f, h) : b.prototype && b.prototype.isPureReactComponent ? !jd(c, d) || !jd(e, f) : !0;\n}\n\nfunction hg(a, b, c) {\n var d = !1,\n e = Qe;\n var f = b.contextType;\n \"object\" === typeof f && null !== f ? f = Mf(f) : (e = N(b) ? Re : L.current, d = b.contextTypes, f = (d = null !== d && void 0 !== d) ? Se(a, e) : Qe);\n b = new b(c, f);\n a.memoizedState = null !== b.state && void 0 !== b.state ? b.state : null;\n b.updater = fg;\n a.stateNode = b;\n b._reactInternalFiber = a;\n d && (a = a.stateNode, a.__reactInternalMemoizedUnmaskedChildContext = e, a.__reactInternalMemoizedMaskedChildContext = f);\n return b;\n}\n\nfunction ig(a, b, c, d) {\n a = b.state;\n \"function\" === typeof b.componentWillReceiveProps && b.componentWillReceiveProps(c, d);\n \"function\" === typeof b.UNSAFE_componentWillReceiveProps && b.UNSAFE_componentWillReceiveProps(c, d);\n b.state !== a && fg.enqueueReplaceState(b, b.state, null);\n}\n\nfunction jg(a, b, c, d) {\n var e = a.stateNode;\n e.props = c;\n e.state = a.memoizedState;\n e.refs = ag;\n var f = b.contextType;\n \"object\" === typeof f && null !== f ? e.context = Mf(f) : (f = N(b) ? Re : L.current, e.context = Se(a, f));\n f = a.updateQueue;\n null !== f && (Wf(a, f, c, e, d), e.state = a.memoizedState);\n f = b.getDerivedStateFromProps;\n \"function\" === typeof f && (bg(a, b, f, c), e.state = a.memoizedState);\n \"function\" === typeof b.getDerivedStateFromProps || \"function\" === typeof e.getSnapshotBeforeUpdate || \"function\" !== typeof e.UNSAFE_componentWillMount && \"function\" !== typeof e.componentWillMount || (b = e.state, \"function\" === typeof e.componentWillMount && e.componentWillMount(), \"function\" === typeof e.UNSAFE_componentWillMount && e.UNSAFE_componentWillMount(), b !== e.state && fg.enqueueReplaceState(e, e.state, null), f = a.updateQueue, null !== f && (Wf(a, f, c, e, d), e.state = a.memoizedState));\n \"function\" === typeof e.componentDidMount && (a.effectTag |= 4);\n}\n\nvar kg = Array.isArray;\n\nfunction lg(a, b, c) {\n a = c.ref;\n\n if (null !== a && \"function\" !== typeof a && \"object\" !== typeof a) {\n if (c._owner) {\n c = c._owner;\n var d = void 0;\n\n if (c) {\n if (1 !== c.tag) throw t(Error(309));\n d = c.stateNode;\n }\n\n if (!d) throw t(Error(147), a);\n var e = \"\" + a;\n if (null !== b && null !== b.ref && \"function\" === typeof b.ref && b.ref._stringRef === e) return b.ref;\n\n b = function b(a) {\n var b = d.refs;\n b === ag && (b = d.refs = {});\n null === a ? delete b[e] : b[e] = a;\n };\n\n b._stringRef = e;\n return b;\n }\n\n if (\"string\" !== typeof a) throw t(Error(284));\n if (!c._owner) throw t(Error(290), a);\n }\n\n return a;\n}\n\nfunction mg(a, b) {\n if (\"textarea\" !== a.type) throw t(Error(31), \"[object Object]\" === Object.prototype.toString.call(b) ? \"object with keys {\" + Object.keys(b).join(\", \") + \"}\" : b, \"\");\n}\n\nfunction ng(a) {\n function b(b, c) {\n if (a) {\n var d = b.lastEffect;\n null !== d ? (d.nextEffect = c, b.lastEffect = c) : b.firstEffect = b.lastEffect = c;\n c.nextEffect = null;\n c.effectTag = 8;\n }\n }\n\n function c(c, d) {\n if (!a) return null;\n\n for (; null !== d;) {\n b(c, d), d = d.sibling;\n }\n\n return null;\n }\n\n function d(a, b) {\n for (a = new Map(); null !== b;) {\n null !== b.key ? a.set(b.key, b) : a.set(b.index, b), b = b.sibling;\n }\n\n return a;\n }\n\n function e(a, b, c) {\n a = og(a, b, c);\n a.index = 0;\n a.sibling = null;\n return a;\n }\n\n function f(b, c, d) {\n b.index = d;\n if (!a) return c;\n d = b.alternate;\n if (null !== d) return d = d.index, d < c ? (b.effectTag = 2, c) : d;\n b.effectTag = 2;\n return c;\n }\n\n function h(b) {\n a && null === b.alternate && (b.effectTag = 2);\n return b;\n }\n\n function g(a, b, c, d) {\n if (null === b || 6 !== b.tag) return b = pg(c, a.mode, d), b.return = a, b;\n b = e(b, c, d);\n b.return = a;\n return b;\n }\n\n function k(a, b, c, d) {\n if (null !== b && b.elementType === c.type) return d = e(b, c.props, d), d.ref = lg(a, b, c), d.return = a, d;\n d = qg(c.type, c.key, c.props, null, a.mode, d);\n d.ref = lg(a, b, c);\n d.return = a;\n return d;\n }\n\n function l(a, b, c, d) {\n if (null === b || 4 !== b.tag || b.stateNode.containerInfo !== c.containerInfo || b.stateNode.implementation !== c.implementation) return b = rg(c, a.mode, d), b.return = a, b;\n b = e(b, c.children || [], d);\n b.return = a;\n return b;\n }\n\n function n(a, b, c, d, f) {\n if (null === b || 7 !== b.tag) return b = sg(c, a.mode, d, f), b.return = a, b;\n b = e(b, c, d);\n b.return = a;\n return b;\n }\n\n function z(a, b, c) {\n if (\"string\" === typeof b || \"number\" === typeof b) return b = pg(\"\" + b, a.mode, c), b.return = a, b;\n\n if (\"object\" === typeof b && null !== b) {\n switch (b.$$typeof) {\n case Zb:\n return c = qg(b.type, b.key, b.props, null, a.mode, c), c.ref = lg(a, null, b), c.return = a, c;\n\n case $b:\n return b = rg(b, a.mode, c), b.return = a, b;\n }\n\n if (kg(b) || mc(b)) return b = sg(b, a.mode, c, null), b.return = a, b;\n mg(a, b);\n }\n\n return null;\n }\n\n function x(a, b, c, d) {\n var e = null !== b ? b.key : null;\n if (\"string\" === typeof c || \"number\" === typeof c) return null !== e ? null : g(a, b, \"\" + c, d);\n\n if (\"object\" === typeof c && null !== c) {\n switch (c.$$typeof) {\n case Zb:\n return c.key === e ? c.type === ac ? n(a, b, c.props.children, d, e) : k(a, b, c, d) : null;\n\n case $b:\n return c.key === e ? l(a, b, c, d) : null;\n }\n\n if (kg(c) || mc(c)) return null !== e ? null : n(a, b, c, d, null);\n mg(a, c);\n }\n\n return null;\n }\n\n function v(a, b, c, d, e) {\n if (\"string\" === typeof d || \"number\" === typeof d) return a = a.get(c) || null, g(b, a, \"\" + d, e);\n\n if (\"object\" === typeof d && null !== d) {\n switch (d.$$typeof) {\n case Zb:\n return a = a.get(null === d.key ? c : d.key) || null, d.type === ac ? n(b, a, d.props.children, e, d.key) : k(b, a, d, e);\n\n case $b:\n return a = a.get(null === d.key ? c : d.key) || null, l(b, a, d, e);\n }\n\n if (kg(d) || mc(d)) return a = a.get(c) || null, n(b, a, d, e, null);\n mg(b, d);\n }\n\n return null;\n }\n\n function rb(e, h, g, k) {\n for (var l = null, u = null, n = h, w = h = 0, C = null; null !== n && w < g.length; w++) {\n n.index > w ? (C = n, n = null) : C = n.sibling;\n var p = x(e, n, g[w], k);\n\n if (null === p) {\n null === n && (n = C);\n break;\n }\n\n a && n && null === p.alternate && b(e, n);\n h = f(p, h, w);\n null === u ? l = p : u.sibling = p;\n u = p;\n n = C;\n }\n\n if (w === g.length) return c(e, n), l;\n\n if (null === n) {\n for (; w < g.length; w++) {\n n = z(e, g[w], k), null !== n && (h = f(n, h, w), null === u ? l = n : u.sibling = n, u = n);\n }\n\n return l;\n }\n\n for (n = d(e, n); w < g.length; w++) {\n C = v(n, e, w, g[w], k), null !== C && (a && null !== C.alternate && n.delete(null === C.key ? w : C.key), h = f(C, h, w), null === u ? l = C : u.sibling = C, u = C);\n }\n\n a && n.forEach(function (a) {\n return b(e, a);\n });\n return l;\n }\n\n function Be(e, h, g, k) {\n var l = mc(g);\n if (\"function\" !== typeof l) throw t(Error(150));\n g = l.call(g);\n if (null == g) throw t(Error(151));\n\n for (var n = l = null, u = h, w = h = 0, C = null, p = g.next(); null !== u && !p.done; w++, p = g.next()) {\n u.index > w ? (C = u, u = null) : C = u.sibling;\n var r = x(e, u, p.value, k);\n\n if (null === r) {\n null === u && (u = C);\n break;\n }\n\n a && u && null === r.alternate && b(e, u);\n h = f(r, h, w);\n null === n ? l = r : n.sibling = r;\n n = r;\n u = C;\n }\n\n if (p.done) return c(e, u), l;\n\n if (null === u) {\n for (; !p.done; w++, p = g.next()) {\n p = z(e, p.value, k), null !== p && (h = f(p, h, w), null === n ? l = p : n.sibling = p, n = p);\n }\n\n return l;\n }\n\n for (u = d(e, u); !p.done; w++, p = g.next()) {\n p = v(u, e, w, p.value, k), null !== p && (a && null !== p.alternate && u.delete(null === p.key ? w : p.key), h = f(p, h, w), null === n ? l = p : n.sibling = p, n = p);\n }\n\n a && u.forEach(function (a) {\n return b(e, a);\n });\n return l;\n }\n\n return function (a, d, f, g) {\n var k = \"object\" === typeof f && null !== f && f.type === ac && null === f.key;\n k && (f = f.props.children);\n var l = \"object\" === typeof f && null !== f;\n if (l) switch (f.$$typeof) {\n case Zb:\n a: {\n l = f.key;\n\n for (k = d; null !== k;) {\n if (k.key === l) {\n if (7 === k.tag ? f.type === ac : k.elementType === f.type) {\n c(a, k.sibling);\n d = e(k, f.type === ac ? f.props.children : f.props, g);\n d.ref = lg(a, k, f);\n d.return = a;\n a = d;\n break a;\n }\n\n c(a, k);\n break;\n } else b(a, k);\n\n k = k.sibling;\n }\n\n f.type === ac ? (d = sg(f.props.children, a.mode, g, f.key), d.return = a, a = d) : (g = qg(f.type, f.key, f.props, null, a.mode, g), g.ref = lg(a, d, f), g.return = a, a = g);\n }\n\n return h(a);\n\n case $b:\n a: {\n for (k = f.key; null !== d;) {\n if (d.key === k) {\n if (4 === d.tag && d.stateNode.containerInfo === f.containerInfo && d.stateNode.implementation === f.implementation) {\n c(a, d.sibling);\n d = e(d, f.children || [], g);\n d.return = a;\n a = d;\n break a;\n }\n\n c(a, d);\n break;\n } else b(a, d);\n\n d = d.sibling;\n }\n\n d = rg(f, a.mode, g);\n d.return = a;\n a = d;\n }\n\n return h(a);\n }\n if (\"string\" === typeof f || \"number\" === typeof f) return f = \"\" + f, null !== d && 6 === d.tag ? (c(a, d.sibling), d = e(d, f, g), d.return = a, a = d) : (c(a, d), d = pg(f, a.mode, g), d.return = a, a = d), h(a);\n if (kg(f)) return rb(a, d, f, g);\n if (mc(f)) return Be(a, d, f, g);\n l && mg(a, f);\n if (\"undefined\" === typeof f && !k) switch (a.tag) {\n case 1:\n case 0:\n throw a = a.type, t(Error(152), a.displayName || a.name || \"Component\");\n }\n return c(a, d);\n };\n}\n\nvar tg = ng(!0),\n ug = ng(!1),\n vg = {},\n wg = {\n current: vg\n},\n xg = {\n current: vg\n},\n yg = {\n current: vg\n};\n\nfunction zg(a) {\n if (a === vg) throw t(Error(174));\n return a;\n}\n\nfunction Ag(a, b) {\n J(yg, b, a);\n J(xg, a, a);\n J(wg, vg, a);\n var c = b.nodeType;\n\n switch (c) {\n case 9:\n case 11:\n b = (b = b.documentElement) ? b.namespaceURI : te(null, \"\");\n break;\n\n default:\n c = 8 === c ? b.parentNode : b, b = c.namespaceURI || null, c = c.tagName, b = te(b, c);\n }\n\n H(wg, a);\n J(wg, b, a);\n}\n\nfunction Bg(a) {\n H(wg, a);\n H(xg, a);\n H(yg, a);\n}\n\nfunction Cg(a) {\n zg(yg.current);\n var b = zg(wg.current);\n var c = te(b, a.type);\n b !== c && (J(xg, a, a), J(wg, c, a));\n}\n\nfunction Dg(a) {\n xg.current === a && (H(wg, a), H(xg, a));\n}\n\nvar Eg = 1,\n Fg = 1,\n Gg = 2,\n P = {\n current: 0\n};\n\nfunction Hg(a) {\n for (var b = a; null !== b;) {\n if (13 === b.tag) {\n if (null !== b.memoizedState) return b;\n } else if (19 === b.tag && void 0 !== b.memoizedProps.revealOrder) {\n if (0 !== (b.effectTag & 64)) return b;\n } else if (null !== b.child) {\n b.child.return = b;\n b = b.child;\n continue;\n }\n\n if (b === a) break;\n\n for (; null === b.sibling;) {\n if (null === b.return || b.return === a) return null;\n b = b.return;\n }\n\n b.sibling.return = b.return;\n b = b.sibling;\n }\n\n return null;\n}\n\nvar Ig = 0,\n Jg = 2,\n Kg = 4,\n Lg = 8,\n Mg = 16,\n Ng = 32,\n Og = 64,\n Pg = 128,\n Qg = Xb.ReactCurrentDispatcher,\n Rg = 0,\n Sg = null,\n Q = null,\n Tg = null,\n Ug = null,\n R = null,\n Vg = null,\n Wg = 0,\n Xg = null,\n Yg = 0,\n Zg = !1,\n $g = null,\n ah = 0;\n\nfunction bh() {\n throw t(Error(321));\n}\n\nfunction ch(a, b) {\n if (null === b) return !1;\n\n for (var c = 0; c < b.length && c < a.length; c++) {\n if (!hd(a[c], b[c])) return !1;\n }\n\n return !0;\n}\n\nfunction dh(a, b, c, d, e, f) {\n Rg = f;\n Sg = b;\n Tg = null !== a ? a.memoizedState : null;\n Qg.current = null === Tg ? eh : fh;\n b = c(d, e);\n\n if (Zg) {\n do {\n Zg = !1, ah += 1, Tg = null !== a ? a.memoizedState : null, Vg = Ug, Xg = R = Q = null, Qg.current = fh, b = c(d, e);\n } while (Zg);\n\n $g = null;\n ah = 0;\n }\n\n Qg.current = hh;\n a = Sg;\n a.memoizedState = Ug;\n a.expirationTime = Wg;\n a.updateQueue = Xg;\n a.effectTag |= Yg;\n a = null !== Q && null !== Q.next;\n Rg = 0;\n Vg = R = Ug = Tg = Q = Sg = null;\n Wg = 0;\n Xg = null;\n Yg = 0;\n if (a) throw t(Error(300));\n return b;\n}\n\nfunction ih() {\n Qg.current = hh;\n Rg = 0;\n Vg = R = Ug = Tg = Q = Sg = null;\n Wg = 0;\n Xg = null;\n Yg = 0;\n Zg = !1;\n $g = null;\n ah = 0;\n}\n\nfunction jh() {\n var a = {\n memoizedState: null,\n baseState: null,\n queue: null,\n baseUpdate: null,\n next: null\n };\n null === R ? Ug = R = a : R = R.next = a;\n return R;\n}\n\nfunction kh() {\n if (null !== Vg) R = Vg, Vg = R.next, Q = Tg, Tg = null !== Q ? Q.next : null;else {\n if (null === Tg) throw t(Error(310));\n Q = Tg;\n var a = {\n memoizedState: Q.memoizedState,\n baseState: Q.baseState,\n queue: Q.queue,\n baseUpdate: Q.baseUpdate,\n next: null\n };\n R = null === R ? Ug = a : R.next = a;\n Tg = Q.next;\n }\n return R;\n}\n\nfunction lh(a, b) {\n return \"function\" === typeof b ? b(a) : b;\n}\n\nfunction mh(a) {\n var b = kh(),\n c = b.queue;\n if (null === c) throw t(Error(311));\n c.lastRenderedReducer = a;\n\n if (0 < ah) {\n var d = c.dispatch;\n\n if (null !== $g) {\n var e = $g.get(c);\n\n if (void 0 !== e) {\n $g.delete(c);\n var f = b.memoizedState;\n\n do {\n f = a(f, e.action), e = e.next;\n } while (null !== e);\n\n hd(f, b.memoizedState) || (Lf = !0);\n b.memoizedState = f;\n b.baseUpdate === c.last && (b.baseState = f);\n c.lastRenderedState = f;\n return [f, d];\n }\n }\n\n return [b.memoizedState, d];\n }\n\n d = c.last;\n var h = b.baseUpdate;\n f = b.baseState;\n null !== h ? (null !== d && (d.next = null), d = h.next) : d = null !== d ? d.next : null;\n\n if (null !== d) {\n var g = e = null,\n k = d,\n l = !1;\n\n do {\n var n = k.expirationTime;\n n < Rg ? (l || (l = !0, g = h, e = f), n > Wg && (Wg = n)) : (Xf(n, k.suspenseConfig), f = k.eagerReducer === a ? k.eagerState : a(f, k.action));\n h = k;\n k = k.next;\n } while (null !== k && k !== d);\n\n l || (g = h, e = f);\n hd(f, b.memoizedState) || (Lf = !0);\n b.memoizedState = f;\n b.baseUpdate = g;\n b.baseState = e;\n c.lastRenderedState = f;\n }\n\n return [b.memoizedState, c.dispatch];\n}\n\nfunction nh(a, b, c, d) {\n a = {\n tag: a,\n create: b,\n destroy: c,\n deps: d,\n next: null\n };\n null === Xg ? (Xg = {\n lastEffect: null\n }, Xg.lastEffect = a.next = a) : (b = Xg.lastEffect, null === b ? Xg.lastEffect = a.next = a : (c = b.next, b.next = a, a.next = c, Xg.lastEffect = a));\n return a;\n}\n\nfunction oh(a, b, c, d) {\n var e = jh();\n Yg |= a;\n e.memoizedState = nh(b, c, void 0, void 0 === d ? null : d);\n}\n\nfunction ph(a, b, c, d) {\n var e = kh();\n d = void 0 === d ? null : d;\n var f = void 0;\n\n if (null !== Q) {\n var h = Q.memoizedState;\n f = h.destroy;\n\n if (null !== d && ch(d, h.deps)) {\n nh(Ig, c, f, d);\n return;\n }\n }\n\n Yg |= a;\n e.memoizedState = nh(b, c, f, d);\n}\n\nfunction qh(a, b) {\n if (\"function\" === typeof b) return a = a(), b(a), function () {\n b(null);\n };\n if (null !== b && void 0 !== b) return a = a(), b.current = a, function () {\n b.current = null;\n };\n}\n\nfunction rh() {}\n\nfunction sh(a, b, c) {\n if (!(25 > ah)) throw t(Error(301));\n var d = a.alternate;\n if (a === Sg || null !== d && d === Sg) {\n if (Zg = !0, a = {\n expirationTime: Rg,\n suspenseConfig: null,\n action: c,\n eagerReducer: null,\n eagerState: null,\n next: null\n }, null === $g && ($g = new Map()), c = $g.get(b), void 0 === c) $g.set(b, a);else {\n for (b = c; null !== b.next;) {\n b = b.next;\n }\n\n b.next = a;\n }\n } else {\n var e = cg(),\n f = $f.suspense;\n e = dg(e, a, f);\n f = {\n expirationTime: e,\n suspenseConfig: f,\n action: c,\n eagerReducer: null,\n eagerState: null,\n next: null\n };\n var h = b.last;\n if (null === h) f.next = f;else {\n var g = h.next;\n null !== g && (f.next = g);\n h.next = f;\n }\n b.last = f;\n if (0 === a.expirationTime && (null === d || 0 === d.expirationTime) && (d = b.lastRenderedReducer, null !== d)) try {\n var k = b.lastRenderedState,\n l = d(k, c);\n f.eagerReducer = d;\n f.eagerState = l;\n if (hd(l, k)) return;\n } catch (n) {} finally {}\n eg(a, e);\n }\n}\n\nvar hh = {\n readContext: Mf,\n useCallback: bh,\n useContext: bh,\n useEffect: bh,\n useImperativeHandle: bh,\n useLayoutEffect: bh,\n useMemo: bh,\n useReducer: bh,\n useRef: bh,\n useState: bh,\n useDebugValue: bh,\n useResponder: bh\n},\n eh = {\n readContext: Mf,\n useCallback: function useCallback(a, b) {\n jh().memoizedState = [a, void 0 === b ? null : b];\n return a;\n },\n useContext: Mf,\n useEffect: function useEffect(a, b) {\n return oh(516, Pg | Og, a, b);\n },\n useImperativeHandle: function useImperativeHandle(a, b, c) {\n c = null !== c && void 0 !== c ? c.concat([a]) : null;\n return oh(4, Kg | Ng, qh.bind(null, b, a), c);\n },\n useLayoutEffect: function useLayoutEffect(a, b) {\n return oh(4, Kg | Ng, a, b);\n },\n useMemo: function useMemo(a, b) {\n var c = jh();\n b = void 0 === b ? null : b;\n a = a();\n c.memoizedState = [a, b];\n return a;\n },\n useReducer: function useReducer(a, b, c) {\n var d = jh();\n b = void 0 !== c ? c(b) : b;\n d.memoizedState = d.baseState = b;\n a = d.queue = {\n last: null,\n dispatch: null,\n lastRenderedReducer: a,\n lastRenderedState: b\n };\n a = a.dispatch = sh.bind(null, Sg, a);\n return [d.memoizedState, a];\n },\n useRef: function useRef(a) {\n var b = jh();\n a = {\n current: a\n };\n return b.memoizedState = a;\n },\n useState: function useState(a) {\n var b = jh();\n \"function\" === typeof a && (a = a());\n b.memoizedState = b.baseState = a;\n a = b.queue = {\n last: null,\n dispatch: null,\n lastRenderedReducer: lh,\n lastRenderedState: a\n };\n a = a.dispatch = sh.bind(null, Sg, a);\n return [b.memoizedState, a];\n },\n useDebugValue: rh,\n useResponder: kd\n},\n fh = {\n readContext: Mf,\n useCallback: function useCallback(a, b) {\n var c = kh();\n b = void 0 === b ? null : b;\n var d = c.memoizedState;\n if (null !== d && null !== b && ch(b, d[1])) return d[0];\n c.memoizedState = [a, b];\n return a;\n },\n useContext: Mf,\n useEffect: function useEffect(a, b) {\n return ph(516, Pg | Og, a, b);\n },\n useImperativeHandle: function useImperativeHandle(a, b, c) {\n c = null !== c && void 0 !== c ? c.concat([a]) : null;\n return ph(4, Kg | Ng, qh.bind(null, b, a), c);\n },\n useLayoutEffect: function useLayoutEffect(a, b) {\n return ph(4, Kg | Ng, a, b);\n },\n useMemo: function useMemo(a, b) {\n var c = kh();\n b = void 0 === b ? null : b;\n var d = c.memoizedState;\n if (null !== d && null !== b && ch(b, d[1])) return d[0];\n a = a();\n c.memoizedState = [a, b];\n return a;\n },\n useReducer: mh,\n useRef: function useRef() {\n return kh().memoizedState;\n },\n useState: function useState(a) {\n return mh(lh, a);\n },\n useDebugValue: rh,\n useResponder: kd\n},\n th = null,\n uh = null,\n vh = !1;\n\nfunction wh(a, b) {\n var c = xh(5, null, null, 0);\n c.elementType = \"DELETED\";\n c.type = \"DELETED\";\n c.stateNode = b;\n c.return = a;\n c.effectTag = 8;\n null !== a.lastEffect ? (a.lastEffect.nextEffect = c, a.lastEffect = c) : a.firstEffect = a.lastEffect = c;\n}\n\nfunction yh(a, b) {\n switch (a.tag) {\n case 5:\n var c = a.type;\n b = 1 !== b.nodeType || c.toLowerCase() !== b.nodeName.toLowerCase() ? null : b;\n return null !== b ? (a.stateNode = b, !0) : !1;\n\n case 6:\n return b = \"\" === a.pendingProps || 3 !== b.nodeType ? null : b, null !== b ? (a.stateNode = b, !0) : !1;\n\n case 13:\n return !1;\n\n default:\n return !1;\n }\n}\n\nfunction zh(a) {\n if (vh) {\n var b = uh;\n\n if (b) {\n var c = b;\n\n if (!yh(a, b)) {\n b = Ne(c.nextSibling);\n\n if (!b || !yh(a, b)) {\n a.effectTag |= 2;\n vh = !1;\n th = a;\n return;\n }\n\n wh(th, c);\n }\n\n th = a;\n uh = Ne(b.firstChild);\n } else a.effectTag |= 2, vh = !1, th = a;\n }\n}\n\nfunction Ah(a) {\n for (a = a.return; null !== a && 5 !== a.tag && 3 !== a.tag && 18 !== a.tag;) {\n a = a.return;\n }\n\n th = a;\n}\n\nfunction Bh(a) {\n if (a !== th) return !1;\n if (!vh) return Ah(a), vh = !0, !1;\n var b = a.type;\n if (5 !== a.tag || \"head\" !== b && \"body\" !== b && !Ke(b, a.memoizedProps)) for (b = uh; b;) {\n wh(a, b), b = Ne(b.nextSibling);\n }\n Ah(a);\n uh = th ? Ne(a.stateNode.nextSibling) : null;\n return !0;\n}\n\nfunction Ch() {\n uh = th = null;\n vh = !1;\n}\n\nvar Dh = Xb.ReactCurrentOwner,\n Lf = !1;\n\nfunction S(a, b, c, d) {\n b.child = null === a ? ug(b, null, c, d) : tg(b, a.child, c, d);\n}\n\nfunction Eh(a, b, c, d, e) {\n c = c.render;\n var f = b.ref;\n Kf(b, e);\n d = dh(a, b, c, d, f, e);\n if (null !== a && !Lf) return b.updateQueue = a.updateQueue, b.effectTag &= -517, a.expirationTime <= e && (a.expirationTime = 0), Fh(a, b, e);\n b.effectTag |= 1;\n S(a, b, d, e);\n return b.child;\n}\n\nfunction Gh(a, b, c, d, e, f) {\n if (null === a) {\n var h = c.type;\n if (\"function\" === typeof h && !Hh(h) && void 0 === h.defaultProps && null === c.compare && void 0 === c.defaultProps) return b.tag = 15, b.type = h, Ih(a, b, h, d, e, f);\n a = qg(c.type, null, d, null, b.mode, f);\n a.ref = b.ref;\n a.return = b;\n return b.child = a;\n }\n\n h = a.child;\n if (e < f && (e = h.memoizedProps, c = c.compare, c = null !== c ? c : jd, c(e, d) && a.ref === b.ref)) return Fh(a, b, f);\n b.effectTag |= 1;\n a = og(h, d, f);\n a.ref = b.ref;\n a.return = b;\n return b.child = a;\n}\n\nfunction Ih(a, b, c, d, e, f) {\n return null !== a && jd(a.memoizedProps, d) && a.ref === b.ref && (Lf = !1, e < f) ? Fh(a, b, f) : Jh(a, b, c, d, f);\n}\n\nfunction Kh(a, b) {\n var c = b.ref;\n if (null === a && null !== c || null !== a && a.ref !== c) b.effectTag |= 128;\n}\n\nfunction Jh(a, b, c, d, e) {\n var f = N(c) ? Re : L.current;\n f = Se(b, f);\n Kf(b, e);\n c = dh(a, b, c, d, f, e);\n if (null !== a && !Lf) return b.updateQueue = a.updateQueue, b.effectTag &= -517, a.expirationTime <= e && (a.expirationTime = 0), Fh(a, b, e);\n b.effectTag |= 1;\n S(a, b, c, e);\n return b.child;\n}\n\nfunction Lh(a, b, c, d, e) {\n if (N(c)) {\n var f = !0;\n Xe(b);\n } else f = !1;\n\n Kf(b, e);\n if (null === b.stateNode) null !== a && (a.alternate = null, b.alternate = null, b.effectTag |= 2), hg(b, c, d, e), jg(b, c, d, e), d = !0;else if (null === a) {\n var h = b.stateNode,\n g = b.memoizedProps;\n h.props = g;\n var k = h.context,\n l = c.contextType;\n \"object\" === typeof l && null !== l ? l = Mf(l) : (l = N(c) ? Re : L.current, l = Se(b, l));\n var n = c.getDerivedStateFromProps,\n z = \"function\" === typeof n || \"function\" === typeof h.getSnapshotBeforeUpdate;\n z || \"function\" !== typeof h.UNSAFE_componentWillReceiveProps && \"function\" !== typeof h.componentWillReceiveProps || (g !== d || k !== l) && ig(b, h, d, l);\n Nf = !1;\n var x = b.memoizedState;\n k = h.state = x;\n var v = b.updateQueue;\n null !== v && (Wf(b, v, d, h, e), k = b.memoizedState);\n g !== d || x !== k || M.current || Nf ? (\"function\" === typeof n && (bg(b, c, n, d), k = b.memoizedState), (g = Nf || gg(b, c, g, d, x, k, l)) ? (z || \"function\" !== typeof h.UNSAFE_componentWillMount && \"function\" !== typeof h.componentWillMount || (\"function\" === typeof h.componentWillMount && h.componentWillMount(), \"function\" === typeof h.UNSAFE_componentWillMount && h.UNSAFE_componentWillMount()), \"function\" === typeof h.componentDidMount && (b.effectTag |= 4)) : (\"function\" === typeof h.componentDidMount && (b.effectTag |= 4), b.memoizedProps = d, b.memoizedState = k), h.props = d, h.state = k, h.context = l, d = g) : (\"function\" === typeof h.componentDidMount && (b.effectTag |= 4), d = !1);\n } else h = b.stateNode, g = b.memoizedProps, h.props = b.type === b.elementType ? g : Af(b.type, g), k = h.context, l = c.contextType, \"object\" === typeof l && null !== l ? l = Mf(l) : (l = N(c) ? Re : L.current, l = Se(b, l)), n = c.getDerivedStateFromProps, (z = \"function\" === typeof n || \"function\" === typeof h.getSnapshotBeforeUpdate) || \"function\" !== typeof h.UNSAFE_componentWillReceiveProps && \"function\" !== typeof h.componentWillReceiveProps || (g !== d || k !== l) && ig(b, h, d, l), Nf = !1, k = b.memoizedState, x = h.state = k, v = b.updateQueue, null !== v && (Wf(b, v, d, h, e), x = b.memoizedState), g !== d || k !== x || M.current || Nf ? (\"function\" === typeof n && (bg(b, c, n, d), x = b.memoizedState), (n = Nf || gg(b, c, g, d, k, x, l)) ? (z || \"function\" !== typeof h.UNSAFE_componentWillUpdate && \"function\" !== typeof h.componentWillUpdate || (\"function\" === typeof h.componentWillUpdate && h.componentWillUpdate(d, x, l), \"function\" === typeof h.UNSAFE_componentWillUpdate && h.UNSAFE_componentWillUpdate(d, x, l)), \"function\" === typeof h.componentDidUpdate && (b.effectTag |= 4), \"function\" === typeof h.getSnapshotBeforeUpdate && (b.effectTag |= 256)) : (\"function\" !== typeof h.componentDidUpdate || g === a.memoizedProps && k === a.memoizedState || (b.effectTag |= 4), \"function\" !== typeof h.getSnapshotBeforeUpdate || g === a.memoizedProps && k === a.memoizedState || (b.effectTag |= 256), b.memoizedProps = d, b.memoizedState = x), h.props = d, h.state = x, h.context = l, d = n) : (\"function\" !== typeof h.componentDidUpdate || g === a.memoizedProps && k === a.memoizedState || (b.effectTag |= 4), \"function\" !== typeof h.getSnapshotBeforeUpdate || g === a.memoizedProps && k === a.memoizedState || (b.effectTag |= 256), d = !1);\n return Mh(a, b, c, d, f, e);\n}\n\nfunction Mh(a, b, c, d, e, f) {\n Kh(a, b);\n var h = 0 !== (b.effectTag & 64);\n if (!d && !h) return e && Ye(b, c, !1), Fh(a, b, f);\n d = b.stateNode;\n Dh.current = b;\n var g = h && \"function\" !== typeof c.getDerivedStateFromError ? null : d.render();\n b.effectTag |= 1;\n null !== a && h ? (b.child = tg(b, a.child, null, f), b.child = tg(b, null, g, f)) : S(a, b, g, f);\n b.memoizedState = d.state;\n e && Ye(b, c, !0);\n return b.child;\n}\n\nfunction Nh(a) {\n var b = a.stateNode;\n b.pendingContext ? Ve(a, b.pendingContext, b.pendingContext !== b.context) : b.context && Ve(a, b.context, !1);\n Ag(a, b.containerInfo);\n}\n\nvar Oh = {};\n\nfunction Ph(a, b, c) {\n var d = b.mode,\n e = b.pendingProps,\n f = P.current,\n h = null,\n g = !1,\n k;\n (k = 0 !== (b.effectTag & 64)) || (k = 0 !== (f & Gg) && (null === a || null !== a.memoizedState));\n k ? (h = Oh, g = !0, b.effectTag &= -65) : null !== a && null === a.memoizedState || void 0 === e.fallback || !0 === e.unstable_avoidThisFallback || (f |= Fg);\n f &= Eg;\n J(P, f, b);\n if (null === a) {\n if (g) {\n e = e.fallback;\n a = sg(null, d, 0, null);\n a.return = b;\n if (0 === (b.mode & 2)) for (g = null !== b.memoizedState ? b.child.child : b.child, a.child = g; null !== g;) {\n g.return = a, g = g.sibling;\n }\n c = sg(e, d, c, null);\n c.return = b;\n a.sibling = c;\n d = a;\n } else d = c = ug(b, null, e.children, c);\n } else {\n if (null !== a.memoizedState) {\n if (f = a.child, d = f.sibling, g) {\n e = e.fallback;\n c = og(f, f.pendingProps, 0);\n c.return = b;\n if (0 === (b.mode & 2) && (g = null !== b.memoizedState ? b.child.child : b.child, g !== f.child)) for (c.child = g; null !== g;) {\n g.return = c, g = g.sibling;\n }\n e = og(d, e, d.expirationTime);\n e.return = b;\n c.sibling = e;\n d = c;\n c.childExpirationTime = 0;\n c = e;\n } else d = c = tg(b, f.child, e.children, c);\n } else if (f = a.child, g) {\n g = e.fallback;\n e = sg(null, d, 0, null);\n e.return = b;\n e.child = f;\n null !== f && (f.return = e);\n if (0 === (b.mode & 2)) for (f = null !== b.memoizedState ? b.child.child : b.child, e.child = f; null !== f;) {\n f.return = e, f = f.sibling;\n }\n c = sg(g, d, c, null);\n c.return = b;\n e.sibling = c;\n c.effectTag |= 2;\n d = e;\n e.childExpirationTime = 0;\n } else c = d = tg(b, f, e.children, c);\n b.stateNode = a.stateNode;\n }\n b.memoizedState = h;\n b.child = d;\n return c;\n}\n\nfunction Qh(a, b, c, d, e) {\n var f = a.memoizedState;\n null === f ? a.memoizedState = {\n isBackwards: b,\n rendering: null,\n last: d,\n tail: c,\n tailExpiration: 0,\n tailMode: e\n } : (f.isBackwards = b, f.rendering = null, f.last = d, f.tail = c, f.tailExpiration = 0, f.tailMode = e);\n}\n\nfunction Rh(a, b, c) {\n var d = b.pendingProps,\n e = d.revealOrder,\n f = d.tail;\n S(a, b, d.children, c);\n d = P.current;\n if (0 !== (d & Gg)) d = d & Eg | Gg, b.effectTag |= 64;else {\n if (null !== a && 0 !== (a.effectTag & 64)) a: for (a = b.child; null !== a;) {\n if (13 === a.tag) {\n if (null !== a.memoizedState) {\n a.expirationTime < c && (a.expirationTime = c);\n var h = a.alternate;\n null !== h && h.expirationTime < c && (h.expirationTime = c);\n Jf(a.return, c);\n }\n } else if (null !== a.child) {\n a.child.return = a;\n a = a.child;\n continue;\n }\n\n if (a === b) break a;\n\n for (; null === a.sibling;) {\n if (null === a.return || a.return === b) break a;\n a = a.return;\n }\n\n a.sibling.return = a.return;\n a = a.sibling;\n }\n d &= Eg;\n }\n J(P, d, b);\n if (0 === (b.mode & 2)) b.memoizedState = null;else switch (e) {\n case \"forwards\":\n c = b.child;\n\n for (e = null; null !== c;) {\n d = c.alternate, null !== d && null === Hg(d) && (e = c), c = c.sibling;\n }\n\n c = e;\n null === c ? (e = b.child, b.child = null) : (e = c.sibling, c.sibling = null);\n Qh(b, !1, e, c, f);\n break;\n\n case \"backwards\":\n c = null;\n e = b.child;\n\n for (b.child = null; null !== e;) {\n d = e.alternate;\n\n if (null !== d && null === Hg(d)) {\n b.child = e;\n break;\n }\n\n d = e.sibling;\n e.sibling = c;\n c = e;\n e = d;\n }\n\n Qh(b, !0, c, null, f);\n break;\n\n case \"together\":\n Qh(b, !1, null, null, void 0);\n break;\n\n default:\n b.memoizedState = null;\n }\n return b.child;\n}\n\nfunction Fh(a, b, c) {\n null !== a && (b.dependencies = a.dependencies);\n if (b.childExpirationTime < c) return null;\n if (null !== a && b.child !== a.child) throw t(Error(153));\n\n if (null !== b.child) {\n a = b.child;\n c = og(a, a.pendingProps, a.expirationTime);\n b.child = c;\n\n for (c.return = b; null !== a.sibling;) {\n a = a.sibling, c = c.sibling = og(a, a.pendingProps, a.expirationTime), c.return = b;\n }\n\n c.sibling = null;\n }\n\n return b.child;\n}\n\nfunction Sh(a) {\n a.effectTag |= 4;\n}\n\nvar Th = void 0,\n Uh = void 0,\n Vh = void 0,\n Wh = void 0;\n\nTh = function Th(a, b) {\n for (var c = b.child; null !== c;) {\n if (5 === c.tag || 6 === c.tag) a.appendChild(c.stateNode);else if (20 === c.tag) a.appendChild(c.stateNode.instance);else if (4 !== c.tag && null !== c.child) {\n c.child.return = c;\n c = c.child;\n continue;\n }\n if (c === b) break;\n\n for (; null === c.sibling;) {\n if (null === c.return || c.return === b) return;\n c = c.return;\n }\n\n c.sibling.return = c.return;\n c = c.sibling;\n }\n};\n\nUh = function Uh() {};\n\nVh = function Vh(a, b, c, d, e) {\n var f = a.memoizedProps;\n\n if (f !== d) {\n var h = b.stateNode;\n zg(wg.current);\n a = null;\n\n switch (c) {\n case \"input\":\n f = Bc(h, f);\n d = Bc(h, d);\n a = [];\n break;\n\n case \"option\":\n f = le(h, f);\n d = le(h, d);\n a = [];\n break;\n\n case \"select\":\n f = m({}, f, {\n value: void 0\n });\n d = m({}, d, {\n value: void 0\n });\n a = [];\n break;\n\n case \"textarea\":\n f = ne(h, f);\n d = ne(h, d);\n a = [];\n break;\n\n default:\n \"function\" !== typeof f.onClick && \"function\" === typeof d.onClick && (h.onclick = Ge);\n }\n\n De(c, d);\n h = c = void 0;\n var g = null;\n\n for (c in f) {\n if (!d.hasOwnProperty(c) && f.hasOwnProperty(c) && null != f[c]) if (\"style\" === c) {\n var k = f[c];\n\n for (h in k) {\n k.hasOwnProperty(h) && (g || (g = {}), g[h] = \"\");\n }\n } else \"dangerouslySetInnerHTML\" !== c && \"children\" !== c && \"suppressContentEditableWarning\" !== c && \"suppressHydrationWarning\" !== c && \"autoFocus\" !== c && (ia.hasOwnProperty(c) ? a || (a = []) : (a = a || []).push(c, null));\n }\n\n for (c in d) {\n var l = d[c];\n k = null != f ? f[c] : void 0;\n if (d.hasOwnProperty(c) && l !== k && (null != l || null != k)) if (\"style\" === c) {\n if (k) {\n for (h in k) {\n !k.hasOwnProperty(h) || l && l.hasOwnProperty(h) || (g || (g = {}), g[h] = \"\");\n }\n\n for (h in l) {\n l.hasOwnProperty(h) && k[h] !== l[h] && (g || (g = {}), g[h] = l[h]);\n }\n } else g || (a || (a = []), a.push(c, g)), g = l;\n } else \"dangerouslySetInnerHTML\" === c ? (l = l ? l.__html : void 0, k = k ? k.__html : void 0, null != l && k !== l && (a = a || []).push(c, \"\" + l)) : \"children\" === c ? k === l || \"string\" !== typeof l && \"number\" !== typeof l || (a = a || []).push(c, \"\" + l) : \"suppressContentEditableWarning\" !== c && \"suppressHydrationWarning\" !== c && (ia.hasOwnProperty(c) ? (null != l && Fe(e, c), a || k === l || (a = [])) : (a = a || []).push(c, l));\n }\n\n g && (a = a || []).push(\"style\", g);\n e = a;\n (b.updateQueue = e) && Sh(b);\n }\n};\n\nWh = function Wh(a, b, c, d) {\n c !== d && Sh(b);\n};\n\nfunction $h(a, b) {\n switch (a.tailMode) {\n case \"hidden\":\n b = a.tail;\n\n for (var c = null; null !== b;) {\n null !== b.alternate && (c = b), b = b.sibling;\n }\n\n null === c ? a.tail = null : c.sibling = null;\n break;\n\n case \"collapsed\":\n c = a.tail;\n\n for (var d = null; null !== c;) {\n null !== c.alternate && (d = c), c = c.sibling;\n }\n\n null === d ? b || null === a.tail ? a.tail = null : a.tail.sibling = null : d.sibling = null;\n }\n}\n\nfunction ai(a) {\n switch (a.tag) {\n case 1:\n N(a.type) && Te(a);\n var b = a.effectTag;\n return b & 2048 ? (a.effectTag = b & -2049 | 64, a) : null;\n\n case 3:\n Bg(a);\n Ue(a);\n b = a.effectTag;\n if (0 !== (b & 64)) throw t(Error(285));\n a.effectTag = b & -2049 | 64;\n return a;\n\n case 5:\n return Dg(a), null;\n\n case 13:\n return H(P, a), b = a.effectTag, b & 2048 ? (a.effectTag = b & -2049 | 64, a) : null;\n\n case 18:\n return null;\n\n case 19:\n return H(P, a), null;\n\n case 4:\n return Bg(a), null;\n\n case 10:\n return If(a), null;\n\n default:\n return null;\n }\n}\n\nfunction bi(a, b) {\n return {\n value: a,\n source: b,\n stack: pc(b)\n };\n}\n\nvar ci = \"function\" === typeof WeakSet ? WeakSet : Set;\n\nfunction di(a, b) {\n var c = b.source,\n d = b.stack;\n null === d && null !== c && (d = pc(c));\n null !== c && oc(c.type);\n b = b.value;\n null !== a && 1 === a.tag && oc(a.type);\n\n try {\n console.error(b);\n } catch (e) {\n setTimeout(function () {\n throw e;\n });\n }\n}\n\nfunction ei(a, b) {\n try {\n b.props = a.memoizedProps, b.state = a.memoizedState, b.componentWillUnmount();\n } catch (c) {\n fi(a, c);\n }\n}\n\nfunction gi(a) {\n var b = a.ref;\n if (null !== b) if (\"function\" === typeof b) try {\n b(null);\n } catch (c) {\n fi(a, c);\n } else b.current = null;\n}\n\nfunction hi(a, b, c) {\n c = c.updateQueue;\n c = null !== c ? c.lastEffect : null;\n\n if (null !== c) {\n var d = c = c.next;\n\n do {\n if ((d.tag & a) !== Ig) {\n var e = d.destroy;\n d.destroy = void 0;\n void 0 !== e && e();\n }\n\n (d.tag & b) !== Ig && (e = d.create, d.destroy = e());\n d = d.next;\n } while (d !== c);\n }\n}\n\nfunction ii(a, b) {\n \"function\" === typeof ji && ji(a);\n\n switch (a.tag) {\n case 0:\n case 11:\n case 14:\n case 15:\n var c = a.updateQueue;\n\n if (null !== c && (c = c.lastEffect, null !== c)) {\n var d = c.next;\n vf(97 < b ? 97 : b, function () {\n var b = d;\n\n do {\n var c = b.destroy;\n\n if (void 0 !== c) {\n var h = a;\n\n try {\n c();\n } catch (g) {\n fi(h, g);\n }\n }\n\n b = b.next;\n } while (b !== d);\n });\n }\n\n break;\n\n case 1:\n gi(a);\n b = a.stateNode;\n \"function\" === typeof b.componentWillUnmount && ei(a, b);\n break;\n\n case 5:\n gi(a);\n break;\n\n case 4:\n ki(a, b);\n }\n}\n\nfunction li(a, b) {\n for (var c = a;;) {\n if (ii(c, b), null !== c.child && 4 !== c.tag) c.child.return = c, c = c.child;else {\n if (c === a) break;\n\n for (; null === c.sibling;) {\n if (null === c.return || c.return === a) return;\n c = c.return;\n }\n\n c.sibling.return = c.return;\n c = c.sibling;\n }\n }\n}\n\nfunction mi(a) {\n return 5 === a.tag || 3 === a.tag || 4 === a.tag;\n}\n\nfunction ni(a) {\n a: {\n for (var b = a.return; null !== b;) {\n if (mi(b)) {\n var c = b;\n break a;\n }\n\n b = b.return;\n }\n\n throw t(Error(160));\n }\n\n b = c.stateNode;\n\n switch (c.tag) {\n case 5:\n var d = !1;\n break;\n\n case 3:\n b = b.containerInfo;\n d = !0;\n break;\n\n case 4:\n b = b.containerInfo;\n d = !0;\n break;\n\n default:\n throw t(Error(161));\n }\n\n c.effectTag & 16 && (we(b, \"\"), c.effectTag &= -17);\n\n a: b: for (c = a;;) {\n for (; null === c.sibling;) {\n if (null === c.return || mi(c.return)) {\n c = null;\n break a;\n }\n\n c = c.return;\n }\n\n c.sibling.return = c.return;\n\n for (c = c.sibling; 5 !== c.tag && 6 !== c.tag && 18 !== c.tag;) {\n if (c.effectTag & 2) continue b;\n if (null === c.child || 4 === c.tag) continue b;else c.child.return = c, c = c.child;\n }\n\n if (!(c.effectTag & 2)) {\n c = c.stateNode;\n break a;\n }\n }\n\n for (var e = a;;) {\n var f = 5 === e.tag || 6 === e.tag;\n\n if (f || 20 === e.tag) {\n var h = f ? e.stateNode : e.stateNode.instance;\n if (c) {\n if (d) {\n f = b;\n var g = h;\n h = c;\n 8 === f.nodeType ? f.parentNode.insertBefore(g, h) : f.insertBefore(g, h);\n } else b.insertBefore(h, c);\n } else d ? (g = b, 8 === g.nodeType ? (f = g.parentNode, f.insertBefore(h, g)) : (f = g, f.appendChild(h)), g = g._reactRootContainer, null !== g && void 0 !== g || null !== f.onclick || (f.onclick = Ge)) : b.appendChild(h);\n } else if (4 !== e.tag && null !== e.child) {\n e.child.return = e;\n e = e.child;\n continue;\n }\n\n if (e === a) break;\n\n for (; null === e.sibling;) {\n if (null === e.return || e.return === a) return;\n e = e.return;\n }\n\n e.sibling.return = e.return;\n e = e.sibling;\n }\n}\n\nfunction ki(a, b) {\n for (var c = a, d = !1, e = void 0, f = void 0;;) {\n if (!d) {\n d = c.return;\n\n a: for (;;) {\n if (null === d) throw t(Error(160));\n e = d.stateNode;\n\n switch (d.tag) {\n case 5:\n f = !1;\n break a;\n\n case 3:\n e = e.containerInfo;\n f = !0;\n break a;\n\n case 4:\n e = e.containerInfo;\n f = !0;\n break a;\n }\n\n d = d.return;\n }\n\n d = !0;\n }\n\n if (5 === c.tag || 6 === c.tag) {\n if (li(c, b), f) {\n var h = e,\n g = c.stateNode;\n 8 === h.nodeType ? h.parentNode.removeChild(g) : h.removeChild(g);\n } else e.removeChild(c.stateNode);\n } else if (20 === c.tag) g = c.stateNode.instance, li(c, b), f ? (h = e, 8 === h.nodeType ? h.parentNode.removeChild(g) : h.removeChild(g)) : e.removeChild(g);else if (4 === c.tag) {\n if (null !== c.child) {\n e = c.stateNode.containerInfo;\n f = !0;\n c.child.return = c;\n c = c.child;\n continue;\n }\n } else if (ii(c, b), null !== c.child) {\n c.child.return = c;\n c = c.child;\n continue;\n }\n if (c === a) break;\n\n for (; null === c.sibling;) {\n if (null === c.return || c.return === a) return;\n c = c.return;\n 4 === c.tag && (d = !1);\n }\n\n c.sibling.return = c.return;\n c = c.sibling;\n }\n}\n\nfunction oi(a, b) {\n switch (b.tag) {\n case 0:\n case 11:\n case 14:\n case 15:\n hi(Kg, Lg, b);\n break;\n\n case 1:\n break;\n\n case 5:\n var c = b.stateNode;\n\n if (null != c) {\n var d = b.memoizedProps,\n e = null !== a ? a.memoizedProps : d;\n a = b.type;\n var f = b.updateQueue;\n b.updateQueue = null;\n\n if (null !== f) {\n c[Ga] = d;\n \"input\" === a && \"radio\" === d.type && null != d.name && Dc(c, d);\n Ee(a, e);\n b = Ee(a, d);\n\n for (e = 0; e < f.length; e += 2) {\n var h = f[e],\n g = f[e + 1];\n \"style\" === h ? Ae(c, g) : \"dangerouslySetInnerHTML\" === h ? ve(c, g) : \"children\" === h ? we(c, g) : zc(c, h, g, b);\n }\n\n switch (a) {\n case \"input\":\n Ec(c, d);\n break;\n\n case \"textarea\":\n pe(c, d);\n break;\n\n case \"select\":\n b = c._wrapperState.wasMultiple, c._wrapperState.wasMultiple = !!d.multiple, a = d.value, null != a ? me(c, !!d.multiple, a, !1) : b !== !!d.multiple && (null != d.defaultValue ? me(c, !!d.multiple, d.defaultValue, !0) : me(c, !!d.multiple, d.multiple ? [] : \"\", !1));\n }\n }\n }\n\n break;\n\n case 6:\n if (null === b.stateNode) throw t(Error(162));\n b.stateNode.nodeValue = b.memoizedProps;\n break;\n\n case 3:\n break;\n\n case 12:\n break;\n\n case 13:\n c = b;\n null === b.memoizedState ? d = !1 : (d = !0, c = b.child, pi = sf());\n if (null !== c) a: for (a = c;;) {\n if (5 === a.tag) f = a.stateNode, d ? (f = f.style, \"function\" === typeof f.setProperty ? f.setProperty(\"display\", \"none\", \"important\") : f.display = \"none\") : (f = a.stateNode, e = a.memoizedProps.style, e = void 0 !== e && null !== e && e.hasOwnProperty(\"display\") ? e.display : null, f.style.display = ze(\"display\", e));else if (6 === a.tag) a.stateNode.nodeValue = d ? \"\" : a.memoizedProps;else if (13 === a.tag && null !== a.memoizedState) {\n f = a.child.sibling;\n f.return = a;\n a = f;\n continue;\n } else if (null !== a.child) {\n a.child.return = a;\n a = a.child;\n continue;\n }\n if (a === c) break a;\n\n for (; null === a.sibling;) {\n if (null === a.return || a.return === c) break a;\n a = a.return;\n }\n\n a.sibling.return = a.return;\n a = a.sibling;\n }\n qi(b);\n break;\n\n case 19:\n qi(b);\n break;\n\n case 17:\n break;\n\n case 20:\n break;\n\n default:\n throw t(Error(163));\n }\n}\n\nfunction qi(a) {\n var b = a.updateQueue;\n\n if (null !== b) {\n a.updateQueue = null;\n var c = a.stateNode;\n null === c && (c = a.stateNode = new ci());\n b.forEach(function (b) {\n var d = ri.bind(null, a, b);\n c.has(b) || (c.add(b), b.then(d, d));\n });\n }\n}\n\nvar si = \"function\" === typeof WeakMap ? WeakMap : Map;\n\nfunction ti(a, b, c) {\n c = Qf(c, null);\n c.tag = 3;\n c.payload = {\n element: null\n };\n var d = b.value;\n\n c.callback = function () {\n ui || (ui = !0, vi = d);\n di(a, b);\n };\n\n return c;\n}\n\nfunction wi(a, b, c) {\n c = Qf(c, null);\n c.tag = 3;\n var d = a.type.getDerivedStateFromError;\n\n if (\"function\" === typeof d) {\n var e = b.value;\n\n c.payload = function () {\n di(a, b);\n return d(e);\n };\n }\n\n var f = a.stateNode;\n null !== f && \"function\" === typeof f.componentDidCatch && (c.callback = function () {\n \"function\" !== typeof d && (null === xi ? xi = new Set([this]) : xi.add(this), di(a, b));\n var c = b.stack;\n this.componentDidCatch(b.value, {\n componentStack: null !== c ? c : \"\"\n });\n });\n return c;\n}\n\nvar yi = Math.ceil,\n zi = Xb.ReactCurrentDispatcher,\n Ai = Xb.ReactCurrentOwner,\n T = 0,\n Bi = 8,\n Ci = 16,\n Di = 32,\n Ei = 0,\n Fi = 1,\n Gi = 2,\n Hi = 3,\n Ii = 4,\n U = T,\n Ji = null,\n V = null,\n W = 0,\n X = Ei,\n Ki = 1073741823,\n Li = 1073741823,\n Mi = null,\n Ni = !1,\n pi = 0,\n Oi = 500,\n Y = null,\n ui = !1,\n vi = null,\n xi = null,\n Pi = !1,\n Qi = null,\n Ri = 90,\n Si = 0,\n Ti = null,\n Ui = 0,\n Vi = null,\n Wi = 0;\n\nfunction cg() {\n return (U & (Ci | Di)) !== T ? 1073741821 - (sf() / 10 | 0) : 0 !== Wi ? Wi : Wi = 1073741821 - (sf() / 10 | 0);\n}\n\nfunction dg(a, b, c) {\n b = b.mode;\n if (0 === (b & 2)) return 1073741823;\n var d = tf();\n if (0 === (b & 4)) return 99 === d ? 1073741823 : 1073741822;\n if ((U & Ci) !== T) return W;\n if (null !== c) a = 1073741821 - 25 * (((1073741821 - a + (c.timeoutMs | 0 || 5E3) / 10) / 25 | 0) + 1);else switch (d) {\n case 99:\n a = 1073741823;\n break;\n\n case 98:\n a = 1073741821 - 10 * (((1073741821 - a + 15) / 10 | 0) + 1);\n break;\n\n case 97:\n case 96:\n a = 1073741821 - 25 * (((1073741821 - a + 500) / 25 | 0) + 1);\n break;\n\n case 95:\n a = 1;\n break;\n\n default:\n throw t(Error(326));\n }\n null !== Ji && a === W && --a;\n return a;\n}\n\nvar Xi = 0;\n\nfunction eg(a, b) {\n if (50 < Ui) throw Ui = 0, Vi = null, t(Error(185));\n a = Yi(a, b);\n\n if (null !== a) {\n a.pingTime = 0;\n var c = tf();\n if (1073741823 === b) {\n if ((U & Bi) !== T && (U & (Ci | Di)) === T) for (var d = Z(a, 1073741823, !0); null !== d;) {\n d = d(!0);\n } else Zi(a, 99, 1073741823), U === T && O();\n } else Zi(a, c, b);\n (U & 4) === T || 98 !== c && 99 !== c || (null === Ti ? Ti = new Map([[a, b]]) : (c = Ti.get(a), (void 0 === c || c > b) && Ti.set(a, b)));\n }\n}\n\nfunction Yi(a, b) {\n a.expirationTime < b && (a.expirationTime = b);\n var c = a.alternate;\n null !== c && c.expirationTime < b && (c.expirationTime = b);\n var d = a.return,\n e = null;\n if (null === d && 3 === a.tag) e = a.stateNode;else for (; null !== d;) {\n c = d.alternate;\n d.childExpirationTime < b && (d.childExpirationTime = b);\n null !== c && c.childExpirationTime < b && (c.childExpirationTime = b);\n\n if (null === d.return && 3 === d.tag) {\n e = d.stateNode;\n break;\n }\n\n d = d.return;\n }\n null !== e && (b > e.firstPendingTime && (e.firstPendingTime = b), a = e.lastPendingTime, 0 === a || b < a) && (e.lastPendingTime = b);\n return e;\n}\n\nfunction Zi(a, b, c) {\n if (a.callbackExpirationTime < c) {\n var d = a.callbackNode;\n null !== d && d !== mf && af(d);\n a.callbackExpirationTime = c;\n 1073741823 === c ? a.callbackNode = xf($i.bind(null, a, Z.bind(null, a, c))) : (d = null, 1 !== c && (d = {\n timeout: 10 * (1073741821 - c) - sf()\n }), a.callbackNode = wf(b, $i.bind(null, a, Z.bind(null, a, c)), d));\n }\n}\n\nfunction $i(a, b, c) {\n var d = a.callbackNode,\n e = null;\n\n try {\n return e = b(c), null !== e ? $i.bind(null, a, e) : null;\n } finally {\n null === e && d === a.callbackNode && (a.callbackNode = null, a.callbackExpirationTime = 0);\n }\n}\n\nfunction aj() {\n (U & (1 | Ci | Di)) === T && (bj(), cj());\n}\n\nfunction dj(a, b) {\n var c = a.firstBatch;\n return null !== c && c._defer && c._expirationTime >= b ? (wf(97, function () {\n c._onComplete();\n\n return null;\n }), !0) : !1;\n}\n\nfunction bj() {\n if (null !== Ti) {\n var a = Ti;\n Ti = null;\n a.forEach(function (a, c) {\n xf(Z.bind(null, c, a));\n });\n O();\n }\n}\n\nfunction ej(a, b) {\n var c = U;\n U |= 1;\n\n try {\n return a(b);\n } finally {\n U = c, U === T && O();\n }\n}\n\nfunction fj(a, b, c, d) {\n var e = U;\n U |= 4;\n\n try {\n return vf(98, a.bind(null, b, c, d));\n } finally {\n U = e, U === T && O();\n }\n}\n\nfunction gj(a, b) {\n var c = U;\n U &= -2;\n U |= Bi;\n\n try {\n return a(b);\n } finally {\n U = c, U === T && O();\n }\n}\n\nfunction hj(a, b) {\n a.finishedWork = null;\n a.finishedExpirationTime = 0;\n var c = a.timeoutHandle;\n -1 !== c && (a.timeoutHandle = -1, Me(c));\n if (null !== V) for (c = V.return; null !== c;) {\n var d = c;\n\n switch (d.tag) {\n case 1:\n var e = d.type.childContextTypes;\n null !== e && void 0 !== e && Te(d);\n break;\n\n case 3:\n Bg(d);\n Ue(d);\n break;\n\n case 5:\n Dg(d);\n break;\n\n case 4:\n Bg(d);\n break;\n\n case 13:\n H(P, d);\n break;\n\n case 19:\n H(P, d);\n break;\n\n case 10:\n If(d);\n }\n\n c = c.return;\n }\n Ji = a;\n V = og(a.current, null, b);\n W = b;\n X = Ei;\n Li = Ki = 1073741823;\n Mi = null;\n Ni = !1;\n}\n\nfunction Z(a, b, c) {\n if ((U & (Ci | Di)) !== T) throw t(Error(327));\n if (a.firstPendingTime < b) return null;\n if (c && a.finishedExpirationTime === b) return ij.bind(null, a);\n cj();\n if (a !== Ji || b !== W) hj(a, b);else if (X === Hi) if (Ni) hj(a, b);else {\n var d = a.lastPendingTime;\n if (d < b) return Z.bind(null, a, d);\n }\n\n if (null !== V) {\n d = U;\n U |= Ci;\n var e = zi.current;\n null === e && (e = hh);\n zi.current = hh;\n\n if (c) {\n if (1073741823 !== b) {\n var f = cg();\n if (f < b) return U = d, Gf(), zi.current = e, Z.bind(null, a, f);\n }\n } else Wi = 0;\n\n do {\n try {\n if (c) for (; null !== V;) {\n V = jj(V);\n } else for (; null !== V && !bf();) {\n V = jj(V);\n }\n break;\n } catch (rb) {\n Gf();\n ih();\n f = V;\n if (null === f || null === f.return) throw hj(a, b), U = d, rb;\n\n a: {\n var h = a,\n g = f.return,\n k = f,\n l = rb,\n n = W;\n k.effectTag |= 1024;\n k.firstEffect = k.lastEffect = null;\n\n if (null !== l && \"object\" === typeof l && \"function\" === typeof l.then) {\n var z = l,\n x = 0 !== (P.current & Fg);\n l = g;\n\n do {\n var v;\n if (v = 13 === l.tag) null !== l.memoizedState ? v = !1 : (v = l.memoizedProps, v = void 0 === v.fallback ? !1 : !0 !== v.unstable_avoidThisFallback ? !0 : x ? !1 : !0);\n\n if (v) {\n g = l.updateQueue;\n null === g ? (g = new Set(), g.add(z), l.updateQueue = g) : g.add(z);\n\n if (0 === (l.mode & 2)) {\n l.effectTag |= 64;\n k.effectTag &= -1957;\n 1 === k.tag && (null === k.alternate ? k.tag = 17 : (n = Qf(1073741823, null), n.tag = 2, Sf(k, n)));\n k.expirationTime = 1073741823;\n break a;\n }\n\n k = h;\n h = n;\n x = k.pingCache;\n null === x ? (x = k.pingCache = new si(), g = new Set(), x.set(z, g)) : (g = x.get(z), void 0 === g && (g = new Set(), x.set(z, g)));\n g.has(h) || (g.add(h), k = kj.bind(null, k, z, h), z.then(k, k));\n l.effectTag |= 2048;\n l.expirationTime = n;\n break a;\n }\n\n l = l.return;\n } while (null !== l);\n\n l = Error((oc(k.type) || \"A React component\") + \" suspended while rendering, but no fallback UI was specified.\\n\\nAdd a component higher in the tree to provide a loading indicator or placeholder to display.\" + pc(k));\n }\n\n X !== Ii && (X = Fi);\n l = bi(l, k);\n k = g;\n\n do {\n switch (k.tag) {\n case 3:\n k.effectTag |= 2048;\n k.expirationTime = n;\n n = ti(k, l, n);\n Tf(k, n);\n break a;\n\n case 1:\n if (z = l, h = k.type, g = k.stateNode, 0 === (k.effectTag & 64) && (\"function\" === typeof h.getDerivedStateFromError || null !== g && \"function\" === typeof g.componentDidCatch && (null === xi || !xi.has(g)))) {\n k.effectTag |= 2048;\n k.expirationTime = n;\n n = wi(k, z, n);\n Tf(k, n);\n break a;\n }\n\n }\n\n k = k.return;\n } while (null !== k);\n }\n\n V = lj(f);\n }\n } while (1);\n\n U = d;\n Gf();\n zi.current = e;\n if (null !== V) return Z.bind(null, a, b);\n }\n\n a.finishedWork = a.current.alternate;\n a.finishedExpirationTime = b;\n if (dj(a, b)) return null;\n Ji = null;\n\n switch (X) {\n case Ei:\n throw t(Error(328));\n\n case Fi:\n return d = a.lastPendingTime, d < b ? Z.bind(null, a, d) : c ? ij.bind(null, a) : (hj(a, b), xf(Z.bind(null, a, b)), null);\n\n case Gi:\n if (1073741823 === Ki && !c && (c = pi + Oi - sf(), 10 < c)) {\n if (Ni) return hj(a, b), Z.bind(null, a, b);\n d = a.lastPendingTime;\n if (d < b) return Z.bind(null, a, d);\n a.timeoutHandle = Le(ij.bind(null, a), c);\n return null;\n }\n\n return ij.bind(null, a);\n\n case Hi:\n if (!c) {\n if (Ni) return hj(a, b), Z.bind(null, a, b);\n c = a.lastPendingTime;\n if (c < b) return Z.bind(null, a, c);\n 1073741823 !== Li ? c = 10 * (1073741821 - Li) - sf() : 1073741823 === Ki ? c = 0 : (c = 10 * (1073741821 - Ki) - 5E3, d = sf(), b = 10 * (1073741821 - b) - d, c = d - c, 0 > c && (c = 0), c = (120 > c ? 120 : 480 > c ? 480 : 1080 > c ? 1080 : 1920 > c ? 1920 : 3E3 > c ? 3E3 : 4320 > c ? 4320 : 1960 * yi(c / 1960)) - c, b < c && (c = b));\n if (10 < c) return a.timeoutHandle = Le(ij.bind(null, a), c), null;\n }\n\n return ij.bind(null, a);\n\n case Ii:\n return !c && 1073741823 !== Ki && null !== Mi && (d = Ki, e = Mi, b = e.busyMinDurationMs | 0, 0 >= b ? b = 0 : (c = e.busyDelayMs | 0, d = sf() - (10 * (1073741821 - d) - (e.timeoutMs | 0 || 5E3)), b = d <= c ? 0 : c + b - d), 10 < b) ? (a.timeoutHandle = Le(ij.bind(null, a), b), null) : ij.bind(null, a);\n\n default:\n throw t(Error(329));\n }\n}\n\nfunction Xf(a, b) {\n a < Ki && 1 < a && (Ki = a);\n null !== b && a < Li && 1 < a && (Li = a, Mi = b);\n}\n\nfunction jj(a) {\n var b = mj(a.alternate, a, W);\n a.memoizedProps = a.pendingProps;\n null === b && (b = lj(a));\n Ai.current = null;\n return b;\n}\n\nfunction lj(a) {\n V = a;\n\n do {\n var b = V.alternate;\n a = V.return;\n\n if (0 === (V.effectTag & 1024)) {\n a: {\n var c = b;\n b = V;\n var d = W,\n e = b.pendingProps;\n\n switch (b.tag) {\n case 2:\n break;\n\n case 16:\n break;\n\n case 15:\n case 0:\n break;\n\n case 1:\n N(b.type) && Te(b);\n break;\n\n case 3:\n Bg(b);\n Ue(b);\n d = b.stateNode;\n d.pendingContext && (d.context = d.pendingContext, d.pendingContext = null);\n if (null === c || null === c.child) Bh(b), b.effectTag &= -3;\n Uh(b);\n break;\n\n case 5:\n Dg(b);\n d = zg(yg.current);\n var f = b.type;\n if (null !== c && null != b.stateNode) Vh(c, b, f, e, d), c.ref !== b.ref && (b.effectTag |= 128);else if (e) {\n var h = zg(wg.current);\n\n if (Bh(b)) {\n c = b;\n e = void 0;\n f = c.stateNode;\n var g = c.type,\n k = c.memoizedProps;\n f[Fa] = c;\n f[Ga] = k;\n\n switch (g) {\n case \"iframe\":\n case \"object\":\n case \"embed\":\n G(\"load\", f);\n break;\n\n case \"video\":\n case \"audio\":\n for (var l = 0; l < bb.length; l++) {\n G(bb[l], f);\n }\n\n break;\n\n case \"source\":\n G(\"error\", f);\n break;\n\n case \"img\":\n case \"image\":\n case \"link\":\n G(\"error\", f);\n G(\"load\", f);\n break;\n\n case \"form\":\n G(\"reset\", f);\n G(\"submit\", f);\n break;\n\n case \"details\":\n G(\"toggle\", f);\n break;\n\n case \"input\":\n Cc(f, k);\n G(\"invalid\", f);\n Fe(d, \"onChange\");\n break;\n\n case \"select\":\n f._wrapperState = {\n wasMultiple: !!k.multiple\n };\n G(\"invalid\", f);\n Fe(d, \"onChange\");\n break;\n\n case \"textarea\":\n oe(f, k), G(\"invalid\", f), Fe(d, \"onChange\");\n }\n\n De(g, k);\n l = null;\n\n for (e in k) {\n k.hasOwnProperty(e) && (h = k[e], \"children\" === e ? \"string\" === typeof h ? f.textContent !== h && (l = [\"children\", h]) : \"number\" === typeof h && f.textContent !== \"\" + h && (l = [\"children\", \"\" + h]) : ia.hasOwnProperty(e) && null != h && Fe(d, e));\n }\n\n switch (g) {\n case \"input\":\n Vb(f);\n Gc(f, k, !0);\n break;\n\n case \"textarea\":\n Vb(f);\n qe(f, k);\n break;\n\n case \"select\":\n case \"option\":\n break;\n\n default:\n \"function\" === typeof k.onClick && (f.onclick = Ge);\n }\n\n d = l;\n c.updateQueue = d;\n null !== d && Sh(b);\n } else {\n k = f;\n c = e;\n g = b;\n l = 9 === d.nodeType ? d : d.ownerDocument;\n h === re.html && (h = se(k));\n h === re.html ? \"script\" === k ? (k = l.createElement(\"div\"), k.innerHTML = \"
-